Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)qqpublished in(发表于) 2014/7/9 22:39:50 visual c++中树视图控件(Tree Control)
树视图控件(Tree Control)树视图控件表示有层次关系的事物或能够进行分类划分的对象。树型视图控件中每个项目(Item,又称作节点)由项目名称和一个可选择的图标组成,其中的项目分为父项目和子项目。父项目位于子项目的上层,如图1所示。在图1中,“中华人民共和国”称为根项目;“吉林”和“辽宁”称为“中华人民共和国”的子项目;“中华人民共和国”是“吉林”和“辽宁”的父项目;“辽宁”是“铁岭”的父项目;“铁岭”是“辽宁”的子项目,以此类推。有关树视图的结构有几个,其中,编程时经常使用的结构是TVITEM结构和TVINSERTSTRCT结构。TVITEM用于定义项目(Item);TVINSERTSTRCT结构用于定义插入项,在TVINSERTSTRCT结构中包含了一个TVITEM结构成员,因此,这个属性实际上包含了要插入项目的属性。下面是这两个结构的定义及说明。typedef struct tagTVITEM{UINT mask; //说明成员中哪些成员有效HTREEITEM hItem; //项目句柄UINT state; //状态UINT stateMask; //状态有效的屏蔽位LPTSTR pszText; //项目文本int cchTextMax; //pszText所指向的缓冲区大小int iImage; //当项目没有选中时,关联图像列表的图像索引值int iSelectedImage; //当项目被选中时,关联图像列表的图像索引值int cChildren; //插入项的父项句柄LPARAM lParam; //程序定义的32位参数} TVITEM, FAR *LPTVITEM;typedef struct tagTVINSERTSTRUCT {HTREEITEM hParent; //插入项的父项的句柄HTREEITEM hInsertAfter; //插入处上一项的句柄或位置标志值TVITEM item; //插入的项目} TVINSERTSTRUCT, FAR *LPTVINSERTSTRUCT;在使用树视图控件时,经常需要重新设置它的有关属性,例如:Hasbuttons表示父项目的前面有一个“+”或“−”号;HasLines表示用连线体现项目之间的层次关系;Lines at root表示在项目最高层用连线将项目与根项目连接;Edit Labels表示可以编辑项目的名称;Check boxes表示项目的左侧有一个复选框;Single expand表示单击项目可以展开或折叠该项目。封装视图的MFC类是CTreeCtrl类,这个类中常用的成员函数如表1所示。表1 CTreeCtrl类中常用的成员函数
赞