CList

CListというコントロールがMFCにはあります。
が、こいつが使いづらいんだな。
簡単にすごく適当に、誤解を恐れないで説明すると、JavaでいうVectorやArrayListと同じ。

とりあえず、CListを利用するにはインクルードしなければならないヘッダがあります。

#include <afxtempl.h>

これはMFCのテンプレート関係のクラスや関数が定義されている(らしい)
こいつをインクルードしないと、CListは使えません。

テンプレートについては、C/C++の方で説明しているのでそっちを見ましょう。

で、このCListを使うのはふつうの宣言とは違います。

CList<格納オブジェクトの型, 格納オブジェクトを参照するときの型> 変数名

というように宣言します。

たとえば

CList<LVITEM, LVITEM&> m_ItemList;
CList<LVITEM*, LVITEM*> m_ItemList;

といったように宣言します。

扱えれば便利なんですが、JavaでArrayListやVectorクラスを利用していた方には 非常に使いづらいクラスになっています。
(初めて使ってCListの使いづらさに発狂したくなりました)

ちなみに、CListに格納したものの内容がおかしい場合は、 newmallocなどでオブジェクトを作成して格納すると問題なく格納できる場合があります。
(これで2日悩んだ・・・C/C++経験があまりなかったし・・・基礎とばしたし)
解放するのを忘れないように注意。

あと、構造体では宣言できないみたい。
宣言したら失敗した(やり方が悪いのだろうか・・・)