字体
第(2/5)页
关灯
   存书签 书架管理 返回目录
在数据项之间具有分支和层次关系。例如,

    如果要向树形视图中加入新的项,则必需描述出该项与树形视图中已有项的相互关系,而不

    可能像往列表框中加入新项那样,调用AddString 即可。另外,树形视图可以在每一项标题

    的左边显示一幅图像,这使控件显得更加形象生动,但同时也增加了控件的复杂程度。在介

    绍如何使用树形视图控件之前,有必要先介绍一下与该控件有关的一些数据类型。

    图5-8 CTreeCtrl 控件样例

    1.HTREEITEM 型句柄

    在Windows 中用HTREEITEM 型句柄来代表树形视图的一项,通过HTREEITEM 句柄

    来区分和访问树形视图的各个项。

    2.TV_ITEM 结构

    该结构用来描述一个表项,它包含了表项的各种属xìng,其定义如下:

    typedef struct _TV_ITEM

    {

    UINT mask;

    //包含一些屏蔽位(下面的括号中列出)的组合,用来表明结构的哪些成员是有效的

    HTREEITEM hItem;

    //表项的句柄(TVIF_HANDLE)

    UINT state;

    //表项的状态(TVIF_STATE)

    UINT stateMask;

    枫叶文学网www.fywxw.com

    第5 章 常用控件

    ·137·

    //状态的屏蔽组合(TVIF_STATE)

    LPSTR pszText;

    //表项的标题正文(TVIF_TEXT)

    int cchTextMax;

    //正文缓冲区的大小(TVIF_TEXT)

    int iImage;

    //表项的图像索引(TVIF_IMAGE)

    int iSelectedImage;

    //选中的项的图像索引(TVIF_SELECTEDIMAGE)

    int cChildren;

    //表明项是否有子项(TVIF_CHILDREN),为1 则有,为0 则没有

    LPARAM lParam;

    //一个32 位的附加数据(TVIF_PARAM)

    }TV_ITEM,FAR *LPTV_ITEM;

    下面对上述参数进行解释。如果要使树形视图的表项显示图像,需要为树形视图建立一

    个位图序列,这时,iImage 说明表项显示的图像在位图序列中的索引,iSelectedImage 则说明

    了选中的表项应显示的图像,在绘制图标时,树形视图可以根据这两个参数提供的索引在位

    图序列中找到对应的位图。lParam 可用来放置与表项相关的数据,这常常是很有用的。state

    和stateMask 的常用值在表5-22 中列出,其中stateMask 用来说明要获取或设置哪些状态。

    表5-22 列表视图的状态

    状态 对应的状态屏蔽 含义

    TVIS_SELECTED 同左 项被选中

    TVIS_EXPANDED 同左 项的子项被展开

    TVIS_EXPANDEDONCE 同左 项的子项曾经被展开过

上一页 目录 下一页