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

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

このセクションの内容

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

System-Provided メッセージ

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

メッセージ関数

名前 説明
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 スレッドのメッセージ キューからのメッセージ情報を保持します。