Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)qq
published in(发表于) 2014/7/9 22:39:50
visual c++中树视图控件(Tree Control)

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类中常用的成员函数




If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759