MFC 之树控件篇

这篇博客详细介绍了在MFC中如何操作CTreeCtrl,包括获取当前选中节点、节点标签、额外数据存储与获取、遍历树节点、判断子节点存在以及清除所有节点的方法。特别指出MFC中的树节点不同于Delphi,没有索引概念,而是通过句柄区分。
摘要由CSDN通过智能技术生成

CTreeCtrl m_wndMyTree;

1) 取得树的当前选中节点:
HTREEITEM hSelectedItem = m_wndMyTree.GetSelectedItem();

2) 取得指定节点的标签值(也就是Caption):
CString strCaption = m_wndMyTree.GetItemText(hSelectedItem);

3) 记住:MFC中的树的节点,是没有索引这一概念的。一棵树的唯一辨别方法是通过树节点
的句柄(HTREEITEM)区别的。(这一点不同于Delphi中的树).Delphi中的树是的每个节点都
有以下两个属性:a) 节点的层次 b) 节点的在当前层次中其父节点下的第几个索引号。

4) 可以通过如下方法,对树节点进行额外数据的存储。
CMyClass *pObj = new CMyClass;
m_wndMyTree.SetItemData(hSelectedItem, (DWORD_PTR)pObj);
上面这两句,等同于Delphi的:
hSelectedItem.Data := Pointer(pObj);//或 hSelectedItem := pObj;
另外,需要注意的一点:为树节点设置了Data值后,在删除节点时,需要释放掉它。(这在
Delphi中是必须要做的一件事。在MFC中,本人相信也是必须要做的。因本人也初学MFC,故
未经验证。待有机会,再行验证)

有了上面的SetItemData()。固然也会有GetItemData()

CMyClass *pMyObj = (CMyClass *)m_wndMyTree.GetItemData(hSelecte

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值