SendMessageについて。

解決


Enter  2004-09-11 13:28:20  No: 85526  IP: [192.*.*.*]

すみません、教えてください。
ほかのモジュールが出力しているメッセージボックスの「OK]ボタンを
押すために、SendMessageでEnterキーを送りたいのですが、
SendMessage関数がいまいちわかりません。
どうかSendMessage関数のコードを教えてもらえないでしょうか?

よろしくお願いします。

編集 削除
Enter  2004-09-11 14:30:15  No: 85527  IP: [192.*.*.*]

追伸です。
ためしに秀丸などのエディターにENTERキーを
送信したところ、ちゃんと送信されました。
どうも、相手がメッセージボックスだからダメなようです。
送信する前に、メッセージボックスのタイトルバーから
ハンドルを取得して、アクティブにはしています。

なにかご存知でしたら、よろしくお願いします。

編集 削除
くま  2004-09-11 14:44:21  No: 85528  IP: [192.*.*.*]

PostMessageを使ってもだめですか?

編集 削除
くま  2004-09-11 14:50:42  No: 85529  IP: [192.*.*.*]

あと、ボタンのウィンドウハンドルに対してWM_KEYDOWNのメッセージを
投げていますか?

編集 削除
Enter  2004-09-11 15:03:51  No: 85530  IP: [192.*.*.*]

くまさん、お世話になります。
S = PostMessage(T_HWND, WM_KEYDOWN, VK_RETURN, 0)
で、できました。
ちなみに、T_HWNDはメッセージボックスのハンドルです。
今回はOKボタンしかないのですが、
OK、CANCELとかあった場合は、どのようにして
ボタンのハンドルを取得するのでしょうか?
ボタンのフォーカスを移動させて、Enterキーなのでしょうか?

編集 削除
くま  2004-09-11 15:39:18  No: 85531  IP: [192.*.*.*]

EnumChildWindowsで子ウィンドウを列挙してGetWindowTextとGetClassNameで
でキャプションとクラスを判断して、ターゲットとなるウィンドウハンドル
に対してPostMessageでいいんじゃないでしょうか。

編集 削除
Enter  2004-09-11 18:04:36  No: 85532  IP: [192.*.*.*]

くまさん、ありがとうございました。
EnumWindowsでメッセージボックスのハンドルは取得
したのですが、EnumChildWindowsってーのがあるんですね。

がんばります。
また、よろしくお願いします。

編集 削除