2 qq 28254507 qq_28254507 于 2016.02.13 23:16 提问

MFC单文档 CTreeView 树结点前加小图标的方法

RT.是在视图分割了以后要用到的。
要在每个根项前加一个图标1,同时在根项的子项前加图标2
不太了解这块。。麻烦讲详细点,万分感谢!

1个回答

caozhy
caozhy   Ds   Rxr 2016.02.14 06:52
已采纳

参考:
http://blog.csdn.net/lifu119/article/details/7024268

关键点:
himl=ImageList_Create(16,16,ILC_COLOR32,1,12);

ImageList_Add(himl,LoadBitmap(hInstX,MAKEINTRESOURCE(IDB_TREE)),NULL);

这里创建一个ImageList,用来装你的图标,其中你的图标作为资源先存好。类似工具栏,是一横条。每个方块一个图标

ti.item.mask=TVIF_TEXT|TCIF_IMAGE|TVIF_SELECTEDIMAGE; //设置透明颜色
ti.item.iImage=4; //这里设置ImageList中的第5个(从0开始下标)作为图标
ti.item.iSelectedImage=4; //这里设置ImageList中的第5个(从0开始下标)作为节点选中的图标,比如说Windows资源管理器,展开文件夹和关闭文件夹图标是不同的

caozhy
caozhy 回复ProgJ: 当前程序的句柄,mfc程序用theApp可以获得
2 年多之前 回复
qq_28254507
qq_28254507 ImageList_Add(himl,LoadBitmap(hInstX,MAKEINTRESOURCE(IDB_TREE)),NULL);中的hInstX应该是什么?
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
CTreeView树视类使用
新建以CTreeView为视基类的单文档应用程序。 树控件通常和图像列表控件一起使用,在树控件中可以显示图像列表中的图标,即为树控件添加图标。 (1)创建位图 在资源编辑器中,添加一个包括所有图标的位图资源,在此位图中每个图标都是16*16像素大小,用户可以改变大小,不过必须为正方形。 (2)添加用于存放图像列表的成员变量  CImageList m_image; (3)创建并设置图像
CTreeView 的教程
整个网上搜了一圈没有好的CTreeView 的教程,所以自己谢谢看。 CTreeView class CTreeView : public CCtrlView
[MFC]CTreeView树形视图、CTreeCtrl树形控件
1. 树形控件和树形视图:     1) 树形控件在Microsoft Windows95中就已经引入,如文件资源管理器中的树形文件列表就是使用树形控件实现的,这是树形控件最常见的应用;     2) 树形视图就是将整个树形控件作为视图模板的视图,就和之前做过的Phones列表视图一样,直接将CXXXView继承自CTreeCtrl即可;     3) 我们看到的资源管理器的左侧其实就是一个
MFC TreeView节点插入
MFC TreeView树视图插入节点
VS2010-MFC:单文档左侧可停靠对话框(包含树控件)的实现
在程序开发中我们经常看见有一些软件左侧有目录树或者是图层树,点击之后就可以右侧View窗口显示相关的内容,其实实现这种机制有两种方法,第一种就是对MFC的View窗口进行窗口分割,左侧的窗口view类派生于CTreeView,其中CTreeView自带一个变量用于View中的树控件的控制。第二种方法就是用一个可停靠的面板嵌套一个对话框,再在对话框中添加树控件,同样可以达到相同的目的。 以下详解搭
单文档mfc添加树形控件
注意:因为某些原因(网上说是vs2010不再支持mfc中的某些控件,具体是什么我也不知道)本方法(嵌入对话条的方法)不能在vs2010上使用,所以如果是使用vs2010的小伙伴们请注意了。 一般的控件在基于对话框的mfc程序中使用非常方便,但在单文档的mfc中却有点麻烦。因为单文档的框架不能直接加各种各样控件,这些控件必须要加在对话框中,然后再把对话框镶嵌在单文档的mfc框架中。刚开始我没注意到
MFC CTreeView学习之初始化(一)
m_TreeCtrl = &GetTreeCtrl(); /* TVS_HASLINES 表示树控制在各子项之间存在连线; TVS_LINESATROOT 表示树控制在根项之间存在连线; TVS_HASBUTTONS 表示树控制视在父项左侧存在展开合拢控制按钮; TVS_EDITLABELS 表示可以控制鼠标单击修改树项的名称; TVS_SHOWSELALWAYS 表示选中项即使在窗口
CTreeView CTreectrl 双击不展开或收缩节点的办法。
CTreectrl 双击不展开或收缩节点。 近日需要这个功能,网上搜了下,有的说自己截获消息有的说子类化,都比较麻烦,没有找到很好的解决办法,所以一直拖着没解决。经研究,在OnNMDblclk函数中直接返回,也不能阻止expanding的消息。 偶然发现Itemexpanding 可以截获这个消息。只要将其中一个回调的参数*pResult = TRUE;  //这样就可以了
MFC CTreeView单击展开和收起(含获取TreeView鼠标当前点击子项的方法)
在自己的TreeView中加上OnClick的函数 void CTree1::OnClick(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here UINT nflags; CPoint point; //这里是获取鼠标当前点击子项的方法 GetCu
如何设置MFC单文档鼠标的形状?
解决方案 MFC中默认鼠标是箭头即IDC_ARROW,我们可以自定义鼠标的形状。 具体步骤: 1.首先在工程文件夹下新建一个CUR文件夹,用来存放后缀名为.cur的鼠标文件:attack.cur 2.在Resource View选项卡中右击MFCDemo resources->Insert->选择Cursor->Import->在工程文件夹的CUR文件夹里选择attack.cu