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

遍历:用递归来完成。

状态检验: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;
}