Mfc CTreeCtrl展开和折叠图标不工作

Mfc CTreeCtrl展开和折叠图标不工作,mfc,Mfc,我已经在mfc visual studio 2010专业版中创建了继承CtreeCtrl名称CMytreeCtrl的类 CMytreeCtrl obTreeCtrl; 我希望在展开特定节点时显示不同的图标,如下所示:- m_imageList.Create (16, 16, ILC_COLOR32, 1,4); m_bitmap.LoadBitmap(IDB_BITMAP5); m_imageList.Add(&m_bitmap, RGB(255,0,255)); SetImag

我已经在mfc visual studio 2010专业版中创建了继承CtreeCtrl名称CMytreeCtrl的类 CMytreeCtrl obTreeCtrl; 我希望在展开特定节点时显示不同的图标,如下所示:-

m_imageList.Create (16, 16, ILC_COLOR32, 1,4);   
m_bitmap.LoadBitmap(IDB_BITMAP5);

m_imageList.Add(&m_bitmap, RGB(255,0,255));
SetImageList (&m_imageList, TVSIL_NORMAL);

SetItemImage(hTreeItemRoot,0,0);//parent node
SetItemImage(hTreeItem,1,2) // child node

因此,如果展开子节点,则图像索引2将用于选定的图像索引,否则将显示图像索引1。我可以在正常状态下显示图标1,但当我查看同一个树项目时,它不会更改图标。

如果要更改树项目的图标,需要在CImageList上设置至少2个图标

MyTreeCtrl.SetItemImage(hItem, 0, 0);  // for first icon
MyTreeCtrl.SetItemImage(hAnotherItem, 1, 1);  // for second icon

设置此项的位置反映了TVN\U ITEMEXPANDED
消息:

您的图像列表只有一个条目。为什么您希望索引1或索引2处的非存在图像显示?我更正了该错误,现在请向我说明修复问题的原因。请说明2:-我需要为同一hItem设置图标,但您正在为树的不同节点设置图标?我可以通过处理TVN_Item2来解决此问题