SendMessage関数 ウィンドウに送信されるメッセージに指定されました。これは、特定のウィンドウのウィンドウプロシージャを呼び出し、ウィンドウプロシージャがメッセージを処理するまで、すぐに戻りません。
PostMessage関数は スレッドに関連付けられたウィンドウのメッセージキューにメッセージを作成し、スレッドがメッセージを処理するのを待たずにすぐに戻ります。
SendMessageがリターンを完了するために、プロセスを待ち、その後、メッセージを送信することですが、この方法は、メッセージを送信していることを直接など、関数呼び出しの規則に従って、メッセージ処理機能(すなわちのWndProc関数)を呼び出す間違いなくメッセージ処理関数の後に戻ります、SendMessage関数は戻りません。しかし、その後、メッセージを処理するときにように、すぐに戻されるメッセージ・キューにメッセージのPostMessage、のPostMessageメッセージを送信しませんでした、のPostMessageはメッセージループのPostMessageメッセージが処理されるときにのみ知っているこの時点では、わかりません。
例:
(ボタン)を送信するボタンをクリックしてください:
メッセージを送る:
SendMessage(Button1.Handle、WM_LBUTTONDOWN、0、0);
SendMessage(Button1.Handle、WM_LBUTTONUP、0、0);
PostMessage:
PostMessage(Button1.Handle、WM_LBUTTONDOWN、0、0);
PostMessage(Button1.Handle、WM_LBUTTONUP、0、0);