CWindow::DestroyChildren

Destroyだけだと、自身のウィンドウを破棄するのか、子ウィンドウを破棄するのか、わかりにくいので、子ウィンドウを破棄する方は、DestroyChildrenに分けた。
Window.hに、

DestroyChildrenを追加し、
Window.cppでは、

CWindow::DestroyChildren自体は、FALSEを返すだけで、何もしない。
ただ、

OnCloseの中で、DestroyChildrenを呼ぶ。
そして、MainWindow.hにも、

追加。
MainWindow.cppでは、

ユーザコントロールの破棄、そしてCWindow::DestroyChildrenを返す。(これは何もしない。)
Destroyは、

DestroyChildren、そしてCWindow::Destroyを呼び出す。
また、CMainWindow::OnCloseでは、

Destroyは呼ばずに、CWindow::OnCloseを返す。
この中で、DestroyChildrenが呼ばれるが、これはCMainWindow::DestroyChildrenのほうである。

OKを押すと閉じる
OKを押すと閉じる

OKを押すと閉じる。

CWindow::OnCloseの中は
CWindow::OnCloseの中は

CWindow::OnCloseの中は、

DestroyChildrenで、中は、
DestroyChildrenで、中は、

DestroyChildrenで、中は、

CMainWindowのほうになる。
CMainWindowのほうになる。

CMainWindowのほうになる。

いずれデストラクタなどでDestroyが呼ばれるが
いずれデストラクタなどでDestroyが呼ばれるが

いずれデストラクタなどでDestroyが呼ばれるが、

その場合は、DestroyChildrenのあとにCWindow::Destroy
その場合は、DestroyChildrenのあとにCWindow::Destroy

その場合は、DestroyChildrenのあとにCWindow::Destroy。

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