WM_DESTROY
読み:ダブリューエム-アンダースコア-デストロイ
外語:WM_DESTROY
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を受け取ったら無視すればよいことになる。
再検索