2 yumin2133 yumin2133 于 2013.06.07 22:41 提问

基于VS2005的VC++程序设计中,如何在为树 的节点添加图标,

最好有详细步骤,就是操作步骤,还有代码,谢谢。。如何为access数据库表添加数据库

2个回答

feelinghappy
feelinghappy   2017.07.30 10:41

CTREECRTL是VC下界面编程中必须掌握的一个基本控件。因此很有必要自己亲手实践一下。
首先声明一个树:
[cpp] view plain copy print?
CTreeCtrl m_tree;

然后定义节点,生成一棵树即可:
[cpp] view plain copy print?
HTREEITEM hParentItem;

m_tree.ModifyStyle(0,TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES);

hParentItem = m_tree.InsertItem(_T("parent"),11,11,TVI_ROOT);//树根

m_tree.InsertItem(_T("son"),0,0,hParentItem,TVI_LAST);

这样就生成了一棵树了,是不是很简单,呵呵。

=================================传说中的分割线===============================

下面介绍一下树节点前面的图标如何添加。
既然要添加图标,当然需要事先将icon图标添加进资源里面,然后声明一个数组,用来存储这些图标资源,最后把这些资源add进树里面即可。
[cpp] view plain copy print?
HICON icon[12];

icon[0]=AfxGetApp()->LoadIcon(IDI_ICON1);

......

CImageList *m_imagelist = new CImageList;

m_imagelist->Create(16,16,ILC_COLOR32| ILC_MASK,7,7);//16*16的图标

m_imagelist->Add(icon[n]);

注意到,专门又新建了一个CImageList,用来管理这些图标。
之后就可以向树中添加这些图标了,当然一定要选好要添加图标和对应树节点之间的对应关系。
[cpp] view plain copy print?
m_tree.SetImageList(m_imagelist,TVSIL_NORMAL);

这样就生成了一个带图标的树了。

feelinghappy
feelinghappy   2017.07.30 10:43
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!