Windowsにおけるウィンドウ メッセージの一つ。様々な通知メッセージの送受信で用いられる。
UINT型の定数であり、WinUser.hで、以下のように定義される。
#define WM_COMMAND 0x0111
Win32/Win64
- HWND ‐ ウィンドウハンドル
- UINT ‐ 0x0111 (WM_COMMAND)
- WPARAM
- WPARAM(HIGH) ‐ 通知コード
- WPARAM(LOW) ‐ コントロール/メニューID
- LPARAM ‐ 送信元のウィンドウハンドル
Win16
かつてのWin16では、次のような仕様だった。
- HWND ‐ ウィンドウハンドル
- UINT ‐ 0x0111 (WM_COMMAND)
- WPARAM ‐ コントロール/メニューID
- LPARAM
- LPARAM(HIGH) ‐ 通知コード
- LPARAM(LOW) ‐ 送信元のウィンドウハンドル
メニューが選択された、キーが押された、といった各種のイベントが通知される。
またアプリケーション内で、SendMessage()を用いて送信することもできる。
Microsoft Visual C++であれば、メニューの項目、アクセラレーターキーなどに対応するコントロール/メニューIDはリソースエディタ等で定義することになり、各々は一意になるように管理される。
どのイベントが生じたかは、幾つかの判断方法がある。簡単には、コントロール/メニューID(Win32/Win64ならWPARAM(LOW)が該当)を見ることで判断できる。
他に、LPARAMをHWNDでキャストすれば送信元のウィンドウハンドルなので、これを保存して置いたハンドルと比較すればどのコントロールからの通知かを識別できる。
用語の所属
Microsoft Windows
ウィンドウ メッセージ
関連する用語
WM_CLOSE
WM_DESTROY
WM_SYSCOMMAND