次の方法で共有


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

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

このセクションでは

名前 形容
メッセージとメッセージ キューの について このセクションでは、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 スレッドのメッセージ キューからのメッセージ情報が含まれています。