DTPickerのカレンダーを閉じるには

解決


sato  2003-02-24 15:01:39  No: 77200  IP: [192.*.*.*]

2つのアプリケーション間でメッセージ通信を行い、他アプリから終了のメッセージを受け取るようなプログラムを作成しています。
DTPickerで日付入力のコントロールを使用しているのですが、カレンダーを開いた状態で、外部からメッセージを受け取ったときにカレンダーを閉じたいのですがうまく動作せず困っています。
DTPickerのウィンドウハンドルを指定してWM_CLOSEメッセージを送信してみたのですが、日付の入力エリアが閉じるのみでカレンダーは開いたままです。
何かよい案はありませんでしょうか?
よろしくお願いします。

編集 削除
DotL  2003-02-24 21:55:50  No: 77201  IP: [192.*.*.*]

SendMessageの前に、

keybd_event 27,1,0,0
keybd_event 27,1,2,0

を追加すれば一応できます。

編集 削除
DotL  2003-02-24 23:32:33  No: 77202  IP: [192.*.*.*]

すみません。

DTPicker1.SetFocus
keybd_event 27,1,0,0
keybd_event 27,1,2,0

のようにして下さい。

編集 削除
DotL  2003-02-25 00:16:07  No: 77203  IP: [192.*.*.*]

SetForeGroundWindow(送り先スレッドのウインドウハンドル)
keybd_event 27,1,0,0
keybd_event 27,1,2,0
SendMessage(DTPickerのウインドウハンドル,WM_CLOSE,0,0)

のほうがうまくいくみたいです。

編集 削除
sato  2003-02-25 14:18:25  No: 77204  IP: [192.*.*.*]

ありがとうございます。
DotLさんの方法でできました。

編集 削除