メッセージとメッセージ キュー

このセクションでは、メッセージとメッセージ キューと、それらをアプリケーションで使用する方法について説明します。

このセクションでは

名前 形容
メッセージとメッセージ キューの について このセクションでは、Windows メッセージとメッセージ キューについて説明します。
メッセージとメッセージ キューの使用 の 次のコード例は、Windows メッセージとメッセージ キューに関連付けられている次のタスクを実行する方法を示しています。
メッセージ参照 API リファレンスが含まれています。

System-Provided メッセージ

システム提供のメッセージの一覧については、「System-Defined メッセージ」を参照してください。

メッセージ関数

名前 形容
BroadcastSystemMessage 指定した受信者にメッセージを送信します。 受信者には、アプリケーション、インストール可能なドライバー、ネットワーク ドライバー、システム レベルのデバイス ドライバー、またはこれらのシステム コンポーネントの任意の組み合わせがあります。
要求が定義されている場合に追加情報を受信するには、BroadcastSystemMessageEx 関数を使用します。
BroadcastSystemMessageEx 指定した受信者にメッセージを送信します。 受信者には、アプリケーション、インストール可能なドライバー、ネットワーク ドライバー、システム レベルのデバイス ドライバー、またはこれらのシステム コンポーネントの任意の組み合わせがあります。
この関数は、BroadcastSystemMessage に似ていますが、この関数は受信者からより多くの情報を返すことができる点が異なります。
DispatchMessage ウィンドウ プロシージャにメッセージをディスパッチします。 通常は、GetMessage 関数によって取得されたメッセージをディスパッチするために使用されます。
GetInputStateの 呼び出し元スレッドのメッセージ キューにマウス ボタンまたはキーボード メッセージがあるかどうかを決定します。
GetMessageの 呼び出し元スレッドのメッセージ キューからメッセージを取得します。 この関数は、送信されたメッセージが取得可能になるまで、受信したメッセージをディスパッチします。
GetMessageとは異なり、PeekMessage 関数は、メッセージがポストされるのを待ってから戻りません。
GetMessageExtraInfoをする 現在のスレッドの追加のメッセージ情報を取得します。 追加のメッセージ情報は、現在のスレッドのメッセージ キューに関連付けられているアプリケーションまたはドライバー定義の値です。
GetMessagePosをする GetMessage 関数によって取得された最後のメッセージのカーソル位置を取得します。
カーソルの現在位置を確認するには、GetCursorPos 関数を使用します。
GetMessageTimeをする GetMessage 関数によって取得された最後のメッセージのメッセージ時間を取得します。 時間は、システムが開始されてからメッセージが作成された時刻 (つまり、スレッドのメッセージ キューに配置) までの経過時間 (ミリ秒単位) を指定する長整数です。
GetQueueStatusをする 呼び出し元スレッドのメッセージ キューで見つかったメッセージの種類を示します。
InSendMessageをする 現在のウィンドウ プロシージャが、SendMessage 関数の呼び出しによって別のスレッド (同じプロセスまたは別のプロセス内) から送信されたメッセージを処理しているかどうかを判断します。
メッセージの送信方法に関する追加情報を取得するには、InSendMessageEx 関数を使用します。
InSendMessageExをする 現在のウィンドウ プロシージャが、(同じプロセスまたは別のプロセスで) 別のスレッドから送信されたメッセージを処理しているかどうかを判断します。
PeekMessageをする 受信した送信メッセージをディスパッチし、スレッド メッセージ キューで投稿されたメッセージを確認し、メッセージ (存在する場合) を取得します。
PostMessageをする 指定したウィンドウを作成したスレッドに関連付けられているメッセージ キューにメッセージを投稿し、スレッドがメッセージを処理するのを待たずに返します。
スレッドに関連付けられているメッセージ キューにメッセージを投稿するには、PostThreadMessage 関数を使用します。
PostQuitMessageをする スレッドが終了 (終了) を要求したことをシステムに示します。 通常、WM_DESTROY メッセージへの応答で使用されます。
PostThreadMessageをする 指定したスレッドのメッセージ キューにメッセージを投稿します。 スレッドがメッセージを処理するのを待たずに返されます。
RegisterWindowMessageの システム全体で一意であることが保証される新しいウィンドウ メッセージを定義します。 メッセージ値は、メッセージを送信または投稿するときに使用できます。
ReplyMessage SendMessage 関数を介して送信されたメッセージに応答します。SendMessage を呼び出した関数に制御返しません。
SendAsyncProcの SendMessageCallback 関数で使用されるアプリケーション定義のコールバック関数。 システムは、メッセージを宛先ウィンドウ プロシージャに渡した後、コールバック関数にメッセージを渡します。 SENDASYNCPROC 型は、このコールバック関数へのポインターを定義します。 SendAsyncProc は、アプリケーション定義関数名のプレースホルダーです。
SendMessageの 指定したメッセージをウィンドウまたはウィンドウに送信します。 SendMessage 関数は、指定したウィンドウのウィンドウ プロシージャを呼び出し、ウィンドウ プロシージャがメッセージを処理するまで戻りません。
メッセージを送信してすぐに返すには、SendMessageCallbackまたは SendNotifyMessage関数使用します。 スレッドのメッセージ キューにメッセージを投稿してすぐに戻すには、PostMessage または PostThreadMessage関数使用します。
SendMessageCallbackの 指定したメッセージをウィンドウまたはウィンドウに送信します。 指定したウィンドウのウィンドウ プロシージャを呼び出し、すぐに返します。 ウィンドウ プロシージャがメッセージを処理した後、システムは指定されたコールバック関数を呼び出し、メッセージ処理の結果とアプリケーション定義値をコールバック関数に渡します。
SendMessageTimeoutをする 指定したメッセージを他のウィンドウのいずれかに送信します。
SendNotifyMessage 指定したメッセージをウィンドウまたはウィンドウに送信します。 呼び出し元のスレッドによってウィンドウが作成された場合、SendNotifyMessage はウィンドウのウィンドウ プロシージャを呼び出し、ウィンドウ プロシージャがメッセージを処理するまで戻りません。 ウィンドウが別のスレッドによって作成された場合、SendNotifyMessage はメッセージをウィンドウ プロシージャに渡し、直ちに返します。ウィンドウ プロシージャがメッセージの処理を完了するまで待機しません。
SetMessageExtraInfoの 現在のスレッドの追加のメッセージ情報を設定します。 追加のメッセージ情報は、現在のスレッドのメッセージ キューに関連付けられているアプリケーションまたはドライバー定義の値です。 アプリケーションは、GetMessageExtraInfo 関数を使用して、スレッドの追加のメッセージ情報を取得できます。
TranslateMessageをする 仮想キー メッセージを文字メッセージに変換します。 文字メッセージは、呼び出し元のスレッドのメッセージ キューにポストされ、スレッドが次に GetMessage を呼び出すか、PeekMessage関数読み取られます。
WaitMessageの スレッドのメッセージ キューに他のメッセージがない場合に、他のスレッドに制御を提供します。 WaitMessage 関数はスレッドを中断し、スレッドのメッセージ キューに新しいメッセージが配置されるまで戻りません。

メッセージ定数

名前 形容
OCM__BASE プライベート ウィンドウ クラスで使用するプライベート メッセージを定義するために使用されます。
WM_APP プライベート メッセージを定義するために使用されます。
WM_USER プライベート ウィンドウ クラスで使用するプライベート メッセージを定義するために使用されます。

メッセージ構造

名前 形容
BSMINFOをする BroadcastSystemMessageExからの要求拒否したウィンドウに関する情報が含まれています。
MSG スレッドのメッセージ キューからのメッセージ情報が含まれています。