TreeCtrl的用法!

TreeCtrl的用法(1)

(一)树控件的主要功能,

      树控件和树视图(Tree Control & View)主要用来显示 具有一定层次结构的 数据项,如资源管理器中的磁盘目录等,以供用户在其中进行各种选择。树控件中的每个数据项包括“数据项名称的文本字符串”和“用于表示该数据项的图像”,每个数据项下面均可包含各种子项,整个结构就像目录树一样。对于包含各种子项的数据项,可通过鼠标双击来展开或合拢,可以通过控制树的不同风格来实现树控件的不同显示形态。这些风格主要包括:

TVS_HASLINES表示用连线来连接父项和它下面的各个子项,这可以使树的显示层次结构更加清晰,但无父项的各子项之间并没有连线。

TVS_LINESATROOT表示在无父项的各子项 即根下面的各子项 存在连线。

TVS_SHOWSELALWAYS表示选中项即使在窗口失去焦点时仍然保持选中状态。

TVS_DISABLEDRAGDROP表示禁止对树控件发送TVN_BEGINDRAG消息。

TVS_HASBUTTONS表示在带有子项的父项前增加一个带“+”或“-”按钮,这使得用户可以通过单击这个小按钮来实现子项的展开和合拢,当存在子项时,按钮的初始状态为“+”,当子项被展开时,小按钮由“+”变为“-”,当子项合拢时,小按钮由“-”变为“+”,这一风格对于根项无效,如果需要可通过组合TVS_LINESATROOT风格来实现;TVS_EDITLABELS表示允许让用户单击具有输入焦点的数据项来修改其名称。

      对于树控件,MFC中叶可以2种形式来封装,即树控件(CTREECTRL)和数视图(CTREEVIEW),来满足用户的不同需求,对于一般要求的用户如果在对话框中应用,使用树控件比较方便。而对于具有较高要求的用户,在使用 树视图 时还具有视窗口的各种方便特性,可以更好的满足文档/视结构的要求。当在窗口中使用数视图时,树视图会占满两个窗口的客户区域并自动随框架窗口的调整而调整,并能够很好的处理诸如菜单、加速键、工具条中的各种命令消息。在使用树视图时,只要利用CTreeView的成员函数GetTreeCtrl()取得树控件的一个引用,就可以像操作树控件一样来使用树视图。

(二)树控件的 对象结构

1、树控件的建立方法

(1)定义树控件类的对象CTreeCtrl m_treeCtrl;

(2)调用该对象的Create函数,其调用格式如下:BOOL Create(DWORD dwStyle,const RECT& rect,CWnd* pParentWnd,UINT nID);

其中dwStyle用来确定树控件的类型,rect用来确定树控件的大小和位置,pParentWnd用来确定树控件的父窗口,通常为一个对话框,不能为NULL,你ID用来确定树控件的标志。树控件的风格可以是上面介绍的风格的组合。

2、树控件的操作函数

(1)GetCount()取得树控件中项的数目

(2)取得树控件中相对于父项的偏移值GetIndent()

(3)取得树控件图像列表的句柄GetImageList()

(4)取得匹配下一个树项GetNextItem()

(5)判断给定树项是否包含子项ItemHasChildren()

(6)取得树项子项GetChildItem()

(7)取得下一个同属树项GetNextSiblingItem()

(8)取得前一个同属树项GetPrevSiblingItem()

(9)取得父树项GetParentItem

(10)取得第一个可视树项GetFirstVisibleItem()

(11)取得下一个可视树项GetNextVisibleItem()

(12)取得前一个可视树项GetPrevVisibleItem()

(13)取得被选中的树项 GetSelectedItem()

(14)取得根树项GetRootItem()

(15)取得树项的属性GetItem()

(16)设置树项的属性SetItem()

(17)取得树项的状态 GetItemState()

(18)设置树项的状态SetItemState()

(19)取得与树项关联图像GetItemImage()

(20)设置与树项关联图像 SetItemImage()

(21)取得树项文本GetItemText()

(22)设置树项文本SetItemText()

(23)取得树项编辑控件句柄 GetEditControl()

3、树控件的操作方法

      树控件的操作方法包括:

(1)插入一个树项InsertItem()

(2)删除一个树项DeleteItem()

(3)删除所有树项DeleteAllItems()

(4)展开或合拢树项 的子项Expand()

(5)选中特定树项SelectItem()

(6)选择一个树项作为第一个可视树项SelectSetFirstVisible()

(7)编辑一个可视的树 项EditLabel()

(8)排序给定父树项的子树项SortChildren()

(三)与树控件相关的数据结构

      在使用树控件时需要了解两个非常重要是数据结构TV_ITEM和TV_INSERTSTRUCT。前一个数据结构用来表示树控件的树项信息,后一个数据结构是用来定义 将树项增加到树控件中 所需要的树项信息。另外,还需要NM_TREEVIEW、TV_DISPINFO和TV_HITTESTINFO数据结构,这几个数据结构的定义方法如下:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值