CTreeCtrl 使某个节点被选中

来源:互联网 发布:矢量量化算法程序 编辑:程序博客网 时间:2024/04/30 15:07

一、创建树形控件

       m_Operatelist.Create(WS_VISIBLE | WS_TABSTOP | WS_CHILD | WS_BORDER
| TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES
| TVS_DISABLEDRAGDROP|TVS_TRACKSELECT|TVS_SHOWSELALWAYS,
CRect(15, 45, 165,390), this, IDC_TREE2);


    TVS_SHOWSELALWAYS这个属性不可少。

二、    

1、针对没有父节点的树  

          int m_Count=m_Operatelist.GetCount();

          HTREEITEM   hRoot=m_Operatelist.GetRootItem(); //获取父节点
         int   nCount=m_Operatelist.GetCount(); 
          int   nNum=0; 
         CString str;
         while(nNum <nCount) 
        { 
                str=m_Operatelist.GetItemText(hRoot);//获取该节点的内容
                if(str.CompareNoCase(m_Type)==0)//判断是否是自己需要的节点
                {
                             m_Operatelist.Select(hRoot,TVGN_CARET);//使之选中
                             break;
                }
               hRoot=m_Operatelist.GetNextItem(hRoot,TVGN_NEXT); 
               nNum++; 


2、有一个父节点,遍历子节点

        HTREEITEM   hRoot=m_Operatelist.GetRootItem(); 
HTREEITEM   hChildItem = m_Operatelist.GetChildItem(hRoot);     


int   nCount=m_Operatelist.GetCount(); 
int   nNum=0; 
CString str;
while(nNum <nCount) 

str=m_Operatelist.GetItemText(hChildItem);
if(str.CompareNoCase(m_Operatelist)==0)
{
m_Operatelist.Select(hChildItem,TVGN_CARET);


break;
}
hChildItem=m_Operatelist.GetNextItem(hChildItem,TVGN_NEXT); 
nNum++; 


原创粉丝点击