はじめて質問させて頂きます。
VC++6でダイアログベース(MFC)のプロジェクトにツリーコントロールを貼り付けています。
OnInitiDialog()に下記コードを書いて、テキストの前にアイコンを表示しようとしてますが、
テキストは表示されるのですが、アイコンが表示されません。
(テキストの前にはアイコンのスペースらしき空白は表示されてます。)
以前、似たような質問があったようなので、いろいろ改良してみましたが
上手くいかないので質問させて頂きました。
よろしくお願いいたします。
-------------------------------------------------------------------
CTreeCtrl m_tree;
OnInitiDialog(
CImageList m_ImageList;
m_ImageList.Create(16, 16, ILC_MASK, 3, 2);
//イメージリストにアイコンをセット
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
//ツリーコントロールにイメージリストをセット
m_tree.SetImageList(&m_ImageList,LVSIL_NORMAL);
//ツリーコントロールにアイテムを挿入
TV_INSERTSTRUCT treeitem;
treeitem.hParent=NULL;
treeitem.item.mask=TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
treeitem.item.pszText=テスト1;
treeitem.item.iImage = 0;
treeitem.item.iSelectedImage = 1;
m_tree.InsertItem(&treeitem);
)
> OnInitiDialog(
> CImageList m_ImageList;
このように関数内に定義したオブジェクトは、
その関数を抜ければ破棄されてしまいます。
したがって、ツリーがアイコンを表示しようと思ったときには、
もうそのイメージリストは存在していないことになります。
dairygoodsさん、返信ありがとうございました。
すごく初歩的なミスをしてしまってたんですね。
教えていただいた通りにすると解決しました。
本当にありがとうございました。