WM_DESTROYは、ウィンドウが破棄された時(DestroyWindowが呼ばれた後)に発生するウィンドウメッセージ。
WM_DESTROY message - Windows applications | Microsoft Docs
DestroyWindowの後に発生しているか確認する。
WM_DESTROYプロジェクトで、
新しい項目で、
WM_DESTROY.cppを追加。
リソースを追加。
Menuリソースを追加。
で、resource.hとWM_DESTROY.rcの中身は、DestroyWindowのトピックのものをそのまま使う。
WM_DESTROY.cppでは、
メニューアイテムが選択された時、ボタンが押された時、それぞれのDestroyWindowの前後にOutputDebugStringでログを出す。
WM_DESTROYが発生した時も、OutputDebugStringでログを出す。
デバッグ開始で、
メニューアイテムItem1-1を選択すると、ウィンドウは破棄されて終了する。
"ID_ITEM_1_1 before"の後に、DestroyWindowが呼ばれているはずで、その後に"WM_DESTROY"が出力されていて、"ID_ITEM_1_1 after"となっている。
ボタンButton1も、
同じような出力順。
さて、閉じるボタンはどうだろうか。
WM_DESTROYが出ているということは、その前にDestroyWindowによる破棄が行われている可能性がある。
しかし、DestroyWindowの呼び出しは、ここにはない別のメッセージの既定処理で行われている模様。
Sample/winapi/WM_DESTROY/WM_DESTROY/src/WM_DESTROY at master · bg1bgst333/Sample · GitHub