CGridCtrl

 CGridCtrlという、ListCtrl(Explorerの右側のWindowで使われている)のような表の役割を果たすMFCのCtrl Classがある。http://www.codeproject.com/miscctrl/gridctrl.asp
 このClassは、Windowsの標準CtrlのListCtrlを使ってOwnerDrawとかで機能を実現しているわけではないので、基底実装による変な制約は無い。表というものをほぼ全部自分自身で実装している。ちょっと思いついたCGridCtrlの良い点としてDoubleBufferingして描画しているところがある。WindowsXPからならListCtrlでもDoubleBufferingで描画するように指定させる事が出来るけれど。あとListCtrlのように行単位で意識を強くしないでも、配列的に扱えるところも良い。
 ただ残念ながらCGridCtrl class自体が肥満児patternな作りでCGridCtrl.cppだけで223KBもある。なので標準的な脳みそのプログラマが大幅な機能追加等の改造をどんどん行っていくにはもう苦しくなってる感じがする。分割していないゆえに、個々のmethodの実装も長くて複雑になりがち。大きいゆえに目が行き届かないのか細かいBugもぽこぽこあるし。ただ1個1個のCellは自分で派生Classを作って交換出来るのでまだ救いはある。
 もっとdesign的に良いものは世の中にいっぱいあるんだろうけれど、無料でOpenSourceで色々と手が入ってて枯れてて使いやすいGridは他には知らない。好みとか慣れの問題なのかもしれないけれど。
 WTL版のCGridCtrlも、http://groups.yahoo.com/group/wtl/files に置かれてて大助かり。自分で移植をするとなるとかなり時間が掛かっちゃう。大勢の人が使っていると道が踏み固められてて楽だなぁ。。