Windowsにおけるウィンドウ メッセージの一つ。ウィンドウのクローズ時に送信される。
UINT型の定数であり、WinUser.hで、以下のように定義される。
#define WM_DESTROY 0x0002
- HWND ‐ ウィンドウハンドル
- UINT ‐ 0x0002 (WM_DESTROY)
- WPARAM ‐ (未使用)
- LPARAM ‐ (未使用)
ウィンドウの終了時に送信される。
通常は、このイベントで次のようにし、ウィンドウを閉じる。
case WM_DESTROY:
PostQuitMessage(0);
return 0;
あるいは、処理せず、そのままDefWindowProc()関数に遷移しても、同様の処理となる。
「閉じる」や×ボタンで閉じるまでの状態遷移は、次の通りである。
- ウィンドウプロシージャにWM_SYSCOMMANDメッセージが送信される。
- DefWindowProc()がこれを受け取ると、ウィンドウプロシージャにWM_CLOSEメッセージが送信される。
- DefWindowProc()がWM_CLOSEを受け取ると、DestroyWindow()関数が呼び出される。
- DestroyWindow()関数は、WM_DESTROYとWM_NCDESTROYメッセージをウィンドウに送る。
つまり、ウィンドウを閉じることを阻止するためには、WM_CLOSEを受け取ったら無視すればよいことになる。
用語の所属
Microsoft Windows
ウィンドウ メッセージ
関連する用語
WM_CLOSE
WM_QUERYENDSESSION