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を押すと閉じる。
CWindow::OnCloseの中は、
DestroyChildrenで、中は、
CMainWindowのほうになる。
いずれデストラクタなどでDestroyが呼ばれるが、
その場合は、DestroyChildrenのあとにCWindow::Destroy。
Test/winapi/CWindow/DestroyChildren/src/CWindow at master · bg1bgst333/Test · GitHub