メッセージとのPostMessage差のデルファイ関数SendMessage関数

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);

おすすめ

転載: www.cnblogs.com/guorongtao/p/11504384.html