递归遍历CtreeCtrl的方法

需要完成功能:根据用户的选择来安排几画面显示。

遍历:用递归来完成。

状态检验:GetCheck()

 

1.首先定义递归函数,对每个叶结点进行检验,若被选中,则记录变量自加1.

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int CMainFrame::TreeTravesal(HTREEITEM hStart)
{
     HTREEITEM hChildItem = NULL;
     AfxMessageBox(m_wndChannelBrowser.m_wndTree.GetItemText(hStart));
     if (m_wndChannelBrowser.m_wndTree.ItemHasChildren(hStart))
     {
        hChildItem = m_wndChannelBrowser.m_wndTree.GetChildItem(hStart);
         while (hChildItem!=NULL)
         {
             TreeTravesal(hChildItem); //递归遍历孩子节点   
             hChildItem =m_wndChannelBrowser.m_wndTree.GetNextItem(hChildItem, TVGN_NEXT);   
         }   
     }
     else 
     {
         if (m_wndChannelBrowser.m_wndTree.GetCheck(hStart))
         {
             m_nNumOfCheckedTreeItem++;
         }
     }
     return m_nNumOfCheckedTreeItem;
}

 

你可能感兴趣的:(职场,VC,休闲,递归遍历,CTreeCtrl)