CWindow::Destroy

ウィンドウを破棄するCWindow::Destroyを実装する。
Window.hで、

Destroyを追加。
Window.cppでは、

Destroyをこのように定義。

デストラクタで呼ぶ。

OnCloseから呼べるけど、閉じた後はどちらにしろウィンドウは破棄されるので、これはコメントアウト
MainWindow.cppでは、

Destroyは使ってないけど、ここのデストラクタのウィンドウ破棄処理があるとややこしいので、コメントアウトして、Window.cpp側に任せる。

ここで閉じるをOKにすると
ここで閉じるをOKにすると

ここで閉じるをOKにすると、

CWindow::OnCloseへ
CWindow::OnCloseへ

CWindow::OnCloseへ、

ここでは破棄しない
ここでは破棄しない

ここでは破棄しない。

閉じるのを許可したら勝手に破棄されるので
閉じるのを許可したら勝手に破棄されるので

閉じるのを許可したら勝手に破棄されるので。

ここに来て
ここに来て

ここに来て、

メッセージループも終わる
メッセージループも終わる

メッセージループも終わる。

いよいよメインウィンドウオブジェクトの削除
いよいよメインウィンドウオブジェクトの削除

いよいよメインウィンドウオブジェクトの削除。

ここに来たら
ここに来たら

ここに来たら、

CMainWindowのデストラクタに来るけど、これは無視。
CMainWindowのデストラクタに来るけど、これは無視。

CMainWindowのデストラクタに来るけど、これは無視。

CWindowのデストラクタでDestroy
CWindowのデストラクタでDestroy

CWindowのデストラクタでDestroy。

ここなんだけど、
ここなんだけど、

ここなんだけど、

DestroyWindowの処理は、
DestroyWindowの処理は、

DestroyWindowの処理は、

失敗する。既に破棄されてるからね。
失敗する。既に破棄されてるからね。

失敗する。既に破棄されてるからね。

という感じでオブジェクトの破棄が終わる
という感じでオブジェクトの破棄が終わる

という感じでオブジェクトの破棄が終わる。

Test/winapi/CWindow/Destroy/src/CWindow at master · bg1bgst333/Test · GitHub