欢迎来到天天文库
浏览记录
ID:34724407
大小:54.57 KB
页数:3页
时间:2019-03-10
《mfc中cimagelist(图形列表控件)和ctreectrl(树形列表控件)的简单用法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、函数说明Create创建一个CImageList控件GetImageCount获取图像的数目GetImageInfo获取图像信息Add添加图像到图像列表控件Remove从列表中删除图像Replace替换列表中指定的图像例如:CImageListm_imageList;//创建CImageList对象 m_imageList.Create(16,16,ILC_COLOR8,0,4); //加载图标 m_imageList.Add(AfxGetApp()->LoadIcon(IDI_ICON_ROOT)); 然后该CTreeCtrl了,这是一个树形列表
2、控件,提供了分层级结构显示数据的功能。这个控件有可视化的界面,可以通过界面编辑器进行创建,只需要拉到界面上即可;同样也可以通过Create函数创建一个树形列表控件,由于这种方法通常不用,这里不再赘言。另外该控件还有很多树形,如HasButton、HasLine等,可以在界面编辑器的属性中查看并设置。 树形控件有两个非常重要的数据结构:TV_ITEM和TV_INSERTSTRUCT。前者用来描述一个树节点的信息;后者描述要插入树时所需的信息。结构如下:typedefstruct_TV_ITEM{ UINT mask; /
3、/结构成员有效性屏蔽位 HTREEITEM hItem; //数据项控制句柄 UINT state; //数据项状态 UINT stateMask; //状态有效性屏蔽位 LPSTR pszText; //数据项名称字符串 int cchTextMax; //数据项名称的最大长度 int iImage; //数据项图标索引号 int iSelectedImage; //选中数据项图标索引
4、号 int cChildren; //子项标识 LPARAM lParam; //程序定义的32位数据TVIF_PARAM }TV_ITEM,FAR*LPTV_ITEM; typedefstruct_TV_INSER TSTRUCT { HTREEITEMhParent; //父项控制句柄 HTREEITEMhInsertAfter; //插入树项的位置 TV_ITEM item; //数据项的结构 }TV_INSERTSTRUCT,FAR*
5、LPTV_INSERTSTRUCT; 使用CImageList可以方便的为CTreeCtrl提供图标。首先设置树形控件的图形列表:m_treeStruct.SetImageList(&m_imageList,TVSIL_NORMAL); 然后在添加树形列表节点时可以设置节点的选中时图标索引和未选中时的图标索引。如果没有设置,则数据结构会默认为0。数据结构为上面的TV_ITEM。 向树形控件中添加根节点 添加根节点是比较麻烦的,具体代码如下:TVINSERTSTRUCTtvInsert; //定
6、义一个插入结构 HTREEITEMhParent; //用来保存插入的位置 tvInsert.hParent=NULL; //设置父节点为空 tvInsert.hInsertAfter=NULL; //设置之前的节点同样为空 tvInsert.item.mask=TVIF_TEXT; //设置掩码 tvInsert.item.pszText=_T("公司");
7、 //要显示的文字为“公司” hParent=m_treeStruct.InsertItem(&tvInsert); //插入树形结构中,并返回插入的位置 有了父节点hParent,再要插入子节点就方便了://添加第一级项目"技术部" //参数列表:显示的文字、已选择的图标索引、未选择的图标索引、父节点的HTREEITEM值 HTREEITEMh1=m_treeStruct.InsertItem("技术部",1,2,hParent);//添加第一级项目"管理学院"下的子项目,即第二级 m_treeStruct.InsertItem("ER
8、P组",3,4,h1); m_treeStruct.InsertItem("UI
此文档下载收益归作者所有