いよいよウィンドウリストコントロールにウィンドウリストアイテムを挿入していく。
resource.hで、
ウィンドウリストアイテムは複数挿入するので、最初に割り当てるリソースIDをIDC_WINDOWLISTITEM_ID_STARTとし、そこからアイテムが増えるごとに1足したものを使っていく。
WindowListItem.hは、
WindowListItem.cppは、
ペンとブラシは赤にする。
また、ウィンドウ名を表示する。
WindowListItemsPanel.hは、
CWindowListItemオブジェクトポインタを要素とするstd::listとしてm_lstWindowListを定義したが、なぜstd::listにしてしまったんだろうか。
(これは後悔。いずれstd::vectorなどで書き直したい。)
そして、各アイテムに払いだすリソースIDはm_nId。
これが挿入するたびに増えていくのである。
(これもあまりよろしくないので、後で変更しておきたい。)
WindowListItemsPanel.cppは、
std::listでInsertを書いたので、酷いものである。
挿入後に、対象アイテム以外のアイテム達をずらしていくのが大変である。
アイテムズパネルを破棄する時、すべてのアイテムをイテレータで破棄する。
WindowListControl.hは、
Insertは挿入位置iIndex以外に、ウィンドウ名lpctszWindowName、高さint iHeight、インスタンスハンドルhInstanceを受け取るようにする。
WindowListControl.cppで、m_pWindowListItemsPanel->Insertに丸投げ。
MainWindow.cppのOnCreateで、"0", "1", "2", "3", "4"というウィンドウ名で、0番目、1番目、0番目、1番目、0番目といった感じで挿入していく。
メニューからの挿入はいったん削除。
こんな感じで、"4", "2", "3", "0", "1"と挿入される。