mfc - CTreeCtrl 展开和折叠图标不起作用
问题描述
我在 mfc Visual Studio 2010 专业版 CMytreeCtrl obTreeCtrl 中创建了继承自 CtreeCtrl 名称 CMytreeCtrl 的类;我想在扩展特定节点时显示不同的图标,如下所示:-
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 号图标,但是当我扩展同一个 treeItem 时,它并没有改变图标。
解决方案
如果要更改树项的图标,则需要在CImageList上设置至少 2 个图标。
MyTreeCtrl.SetItemImage(hItem, 0, 0); // for first icon
MyTreeCtrl.SetItemImage(hAnotherItem, 1, 1); // for second icon
您设置它的地方反映了TVN_ITEMEXPANDED消息:https ://docs.microsoft.com/en-us/windows/win32/controls/tvn-itemexpanded
推荐阅读
- python - 将 HTML 嵌套列表拆分为 python 列表
- facebook - Facebook messenger android 人选菜单红圈带 1
- android - 带有复选框的android DialogFragment不起作用
- python - 我如何解释 Keras predict_generator 的结果?
- maven - 将人工制品 SLF4J 包含在使用 jmeter 插件和 maria-db 连接的 maven 项目中时找不到人工制品 SLF4J
- arrays - 在 perl 中打印出哈希数组
- python - 性能挑战:盒子操作(HackerRank)(C、Python)
- html - 鼠标悬停后如何突出显示字符?
- reactjs - 如何测试 Enzyme 和 apollo graphql hooks?
- c# - 在 CalendarView 中显示会议 - Windows 10 UWP