MFC 树形控件CTreeCtrl类

简介: MFC 树形控件CTreeCtrl类

MFC为树形控件提供了CTreeCtrl类,它封装了树形控件的所有操作。


API


树形控件创建:Create()


树形控件的创建也是有两种方式,一种是在对话框模板中直接拖入Tree Control控件创建,另一种就是通过CTreeCtrl类的Create成员函数创建。


前者拖控件,只要你再在类向导里为控件添加一个控件类型的变量,系统就会调用一系列生成函数默认生成该变量对象,


下面Create函数讲的是后者的创建。


Create成员函数的原型如下:


virtual BOOL Create(
       DWORD dwStyle,
       const RECT& rect,
       CWnd* pParentWnd,
       UINT nID 
);


参数:


  • dwStyle指定树形控件风格的组合(参数详情见下文表格风格表格)


  • rect指定树形控件窗口的位置和大小


  • pParentWnd为指向树形控件父窗口的指针


  • nID指定树形控件的ID。


dwStyle可选项:


image.png


同样,动态创建树形控件时,除了能够指定上述风格的组合外,一般还要指定WS_CHILD和WS_VISIBLE风格。


在对话框模板中直接拖入Tree Control创建树形控件时,可以在树形控件的属性页中设置其风格,与上面的风格是对应的,例如,属性Has Lines对应的就是TVS_HASLINES风格。


设置节点显示图标:SetImageList()


CImageList* SetImageList(CImageList * pImageList,int nImageListType);


如果树节点需要显示图标时,则必须先创建一个CImageList类的对象,并为其添加多个图像组成一个图像序列,然后调用SetImageList函数为树形控件设置图像序列,在用InsertItem插入节点时传入所需图像在图像序列中的索引即可。


  • pImageList为指向图像序列类CImageList的对象的指针,若为NULL则删除树形控件的所有图像。


  • nImageListType指定图像序列的类型,可以是TVSIL_NORMAL(普通图像序列)或TVSIL_STATE(状态图像序列,用图像表示节点的状态)。


获取节点数量:GetCount()


UINT GetCount( ) const;


获取树形控件中节点的数量。


获取树形控件中某节点的附加32位数据:GetItemData()


DWORD_PTR GetItemData(HTREEITEM hItem) const;


获取树形控件中某个指定节点的附加32位数据。


  • hItem为指定的树节点的句柄。


为树形控件中某个指定节点设置附加的32位数据:SetItemData()


BOOL SetItemData(HTREEITEM hItem,DWORD_PTR dwData);


为树形控件中某个指定节点设置附加的32位数据。


  • hItem为指定的树节点的句柄。


  • dwData为要设置的32位数据。


获取树形控件中某个指定节点的标签文本:GetItemText()


CString GetItemText(HTREEITEM hItem) const;


获取树形控件中某个指定节点的标签文本。参数hItem同上。


返回值是包含标签文本的字符串。


为树形控件中某个指定节点设置标签文本:SetItemText()


BOOL SetItemText(HTREEITEM hItem,LPCTSTR lpszItem);


为树形控件中某个指定节点设置标签文本。


参数:


  • hItem同上


  • lpszItem为包含标签文本的字符串的指针。


获取树形控件中某个指定节点的下一个兄弟节点:GetNextSiblingItem()


HTREEITEM GetNextSiblingItem(HTREEITEM hItem) const;


获取树形控件中某个指定节点的下一个兄弟节点。


参数hItem同上。


返回值是下一个兄弟节点的句柄。


获取树形控件中某个指定节点的上一个兄弟节点:GetPrevSiblingItem()


HTREEITEM GetPrevSiblingItem(HTREEITEM hItem) const;


获取树形控件中某个指定节点的上一个兄弟节点。


参数hItem同上。


返回值是上一个兄弟节点的句柄。


获取树形控件中某个指定节点的父节点:GetParentItem()


HTREEITEM GetParentItem(HTREEITEM hItem) const;


获取树形控件中某个指定节点的父节点。


参数hItem同上。


返回值是父节点的句柄。


获取树形控件根节点的句柄:GetRootItem()


HTREEITEM GetRootItem( ) const;


获取树形控件根节点的句柄。


获取树形控件当前选中节点的句柄:GetSelectedItem()


HTREEITEM GetSelectedItem( ) const;


获取树形控件当前选中节点的句柄。


删除树形控件中的所有节点:DeleteAllItems()


BOOL DeleteAllItems( );


删除树形控件中的所有节点。删除成功则返回TRUE,否则返回FALSE。


删除树形控件中的某个节点:DeleteItem()


BOOL DeleteItem(HTREEITEM hItem);


删除树形控件中的某个节点。


参数:


  • hItem为要删除的节点的句柄。


返回值:删除成功则返回TRUE,否则返回FALSE。


在树形控件中插入一个新节点:InsertItem()


HTREEITEM InsertItem(LPCTSTR lpszItem,int nImage,int nSelectedImage,HTREEITEM hParent


在树形控件中插入一个新节点。


  • lpszItem为新节点的标签文本字符串的指针,


  • nImage为新节点的图标在树形控件图像序列中的索引,


  • nSelectedImage为新节点被选中时的图标在图像序列中的索引,


  • hParent为插入节点的父节点的句柄,


  • hInsertAfter为新节点的前一个节点的句柄,即新节点将被插入到hInsertAfter节点之后。


选中指定的树节点:SelectItem()


BOOL SelectItem(HTREEITEM hItem);


选中指定的树节点。


参数:


  • hItem为要选择的节点的句柄。


返回值:若成功则返回TRUE,否则返回FALSE

相关文章
|
机器学习/深度学习 人工智能 算法
Mamba作者新作:将Llama3蒸馏成混合线性 RNN
【9月更文挑战第25天】《Distillation and Acceleration of Hybrid Models》一文由日内瓦大学、Together AI、康奈尔大学和普林斯顿大学的研究者联合发表,提出将大型Transformer模型(如Llama3)蒸馏成混合线性RNN的新方法,旨在提升长序列生成任务的效率。该方法通过权重映射和多阶段蒸馏,结合渐进蒸馏、监督微调及定向偏好优化技术,有效解决了Transformer模型的二次复杂度和高内存需求问题。实验表明,混合模型在聊天基准测试中表现出色,甚至优于原模型,并通过硬件感知解码算法进一步加速推理。然而,该方法在其他任务上的适用性仍有待验证。
361 7
|
缓存 Android开发 开发者
Android RecycleView 深度解析与面试题梳理
本文详细介绍了Android开发中高效且功能强大的`RecyclerView`,包括其架构概览、工作流程及滑动优化机制,并解析了常见的面试题。通过理解`RecyclerView`的核心组件及其优化技巧,帮助开发者提升应用性能并应对技术面试。
642 8
|
C语言
ASCII编码的52个大小写字母
ASCII编码的52个大小写字母
28529 1
|
Windows Python
python获取windows机子上运行的程序名称
python获取windows机子上运行的程序名称
go使用snmp库查询mib数据
go使用snmp库查询mib数据
524 0
|
移动开发 开发框架 .NET
Win10/Win7 离线安装 vs2019 详细步骤
Win10/Win7 离线安装 vs2019 详细步骤
|
存储 监控 安全
【深度】2023年磁带市场迎来“二级存储”的新时代
磁带是最环保的存储技术,可以显著降低数据中心运营的碳排放和电子废物。结合改进的访问时间、更快的数据速率、50年的介质寿命、最低的TCO、最高的设备可靠性以及巨大的可持续性优势,现代磁带有望在走向ZB时代的巨大需求中发挥最大潜力。磁带已经明确地成为二级存储的首选。
1481 0
【深度】2023年磁带市场迎来“二级存储”的新时代
|
网络协议 网络架构
比较ping,tracert和pathping等命令之间的关系
比较ping,tracert和pathping等命令之间的关系
1037 0
|
XML C# 数据格式
WPF技术之DocumentViewer控件
WPF 的 DocumentViewer 是一个强大的控件,用于在应用程序中显示各种类型的文档,如 XPS(XML Paper Specification)、FlowDocument 和 FixedDocument 等。
2799 1
|
算法 网络协议 C语言
C/C++学习 -- HMAC算法
C/C++学习 -- HMAC算法
1140 0