ObjeqtNote #41 アイテムの子ウィンドウマップ

ウィンドウリストアイテムの子コントロールは、アイテム内のマップで管理するようにすると、アイテムを破棄したときに一緒に破棄してくれる。

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に登録。

f:id:BG1:20170427170416p:plain

動作は変わらないが、ウィンドウリストアイテムを破棄した時、子ウィンドウも破棄してくれる。

・アイテムの子ウィンドウマップ · bg1bgst333/ObjeqtNote@026a5cc · GitHub