ウィンドウリストアイテムの子コントロールは、アイテム内のマップで管理するようにすると、アイテムを破棄したときに一緒に破棄してくれる。
resource.hに、
アイテムの子コントロールの開始リソースIDを定義し、追加するたびに増やしていく。
WindowListItem.hに、
ウィンドウ名をキー、CWindowオブジェクトポインタを値とするstd::map、m_mapChildMapを定義。
WindowListItem.cppでは、
Destroyでマップm_mapChildMap内のCWindow派生オブジェクトを全部破棄。
MainMenuBar.cppで、
pEditBox->CreateにpItem->m_hWndを指定することで、子コントロールを配置できたら、pItem->m_mapChildMap.insertで、"EditBox"をキー、pEditBoxを値としてm_mapChildMapに登録。
動作は変わらないが、ウィンドウリストアイテムを破棄した時、子ウィンドウも破棄してくれる。