2つのアプリケーション間でメッセージ通信を行い、他アプリから終了のメッセージを受け取るようなプログラムを作成しています。
DTPickerで日付入力のコントロールを使用しているのですが、カレンダーを開いた状態で、外部からメッセージを受け取ったときにカレンダーを閉じたいのですがうまく動作せず困っています。
DTPickerのウィンドウハンドルを指定してWM_CLOSEメッセージを送信してみたのですが、日付の入力エリアが閉じるのみでカレンダーは開いたままです。
何かよい案はありませんでしょうか?
よろしくお願いします。
SendMessageの前に、
keybd_event 27,1,0,0
keybd_event 27,1,2,0
を追加すれば一応できます。
すみません。
DTPicker1.SetFocus
keybd_event 27,1,0,0
keybd_event 27,1,2,0
のようにして下さい。
SetForeGroundWindow(送り先スレッドのウインドウハンドル)
keybd_event 27,1,0,0
keybd_event 27,1,2,0
SendMessage(DTPickerのウインドウハンドル,WM_CLOSE,0,0)
のほうがうまくいくみたいです。
ありがとうございます。
DotLさんの方法でできました。
ツイート | ![]() |