ObjeqtNote #36 ウィンドウリストアイテムの挿入

いよいよウィンドウリストコントロールにウィンドウリストアイテムを挿入していく。

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番目といった感じで挿入していく。

メニューからの挿入はいったん削除。

f:id:BG1:20170426154903p:plain

こんな感じで、"4", "2", "3", "0", "1"と挿入される。

・ウィンドウリストアイテムの挿入 · bg1bgst333/ObjeqtNote@0ac0bcc · GitHub