CTreeCtrl 控件的一些使用

本文详细介绍了CTreeCtrl控件的一些基本使用方法,包括获取选定项、根项、子项,展开与折叠节点,以及向下逐行与向上逐行选中操作,并提供了新增元素的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CTreeCtrl 控件的一些使用

1. 一些函数(望文生义)
HTREEITEM hItem
m_Tree.GetSelectedItem();
m_Tree.GetRootItem();
m_Tree.ItemHasChildren(hItem);
m_Tree.Expand(m_hSelItem, TVE_EXPAND);
HTREEITEM hItemTemp = m_Tree.GetNextItem(m_hSelItem, TVGN_NEXTVISIBLE);

2. 向下逐行选中
void XXXXDlg::OnButton1()
{
     m_hSelItem = m_Tree.GetSelectedItem();
     if(m_hSelItem == 0)
     {
          m_hSelItem = m_Tree.GetRootItem();
          m_Tree.Expand(m_hSelItem, TVE_EXPAND);
     }
     else
     {
          m_Tree.Expand(m_hSelItem, TVE_EXPAND);
          HTREEITEM hItemTemp = m_Tree.GetNextItem(m_hSelItem, TVGN_NEXTVISIBLE);
          if(hItemTemp != 0)
          {
               m_hSelItem = hItemTemp;
          }
     }

     m_Tree.EnsureVisible(m_hSelItem);
     m_Tree.SelectItem(m_hSelItem);
     m_Tree.SetFocus();
}

3. 向上逐行选中
void XXXXDlg::OnButton2()
{
     m_hSelItem = m_Tree.GetSelectedItem();
     if(m_hSelItem == 0)
     {
          m_hSelItem = m_Tree.GetRootItem();
          m_Tree.Expand(m_hSelItem, TVE_EXPAND);
     }
     else
     {
          HTREEITEM hItemTemp = m_Tree.GetNextItem(m_hSelItem, TVGN_PREVIOUSVISIBLE);
          Expand(hItemTemp);
          m_hSelItem = m_Tree.GetNextItem(m_hSelItem, TVGN_PREVIOUSVISIBLE);
     }

     m_Tree.EnsureVisible(m_hSelItem);
     m_Tree.SelectItem(m_hSelItem);
     m_Tree.SetFocus();
     return; 
}

void XXXXDlg::Expand(HTREEITEM hItem)
{
     if(m_Tree.ItemHasChildren(hItem))
     {
          m_Tree.Expand(hItem, TVE_EXPAND);
          HTREEITEM hChildItem = m_Tree.GetChildItem(hItem);
          while(hChildItem)
          {
              Expand(hChildItem);
               hChildItem = m_Tree.GetNextItem(hChildItem, TVGN_NEXT);
          }
     }
}

4. 新增(插入)元素
itemNew = m_Tree.InsertItem( strItemName, iterParent ); // 返回新增的元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值