如何遍历CTreeCtrl的各个节点?希望给些代码

解决方案 »

  1.   

    GetRootItem( )找到树根
    然后通过树根一层一层遍历所有ChildItem
    用到的函数有ItemHasChildren(),GetChildItem()等
    想必代码也就出来了
      

  2.   

    还是有一些问题,GetRootItem()得到了一个节点的Root,我这里好像还有其他的并列的Root啊
      

  3.   

    遍历函数
    void TreeVisit(CTreeCtrl& tree, HTREEITEM hItem)
    {  
    //DoWithItem(hItem); //访问当前节点  
    if (tree.ItemHasChildren(hItem))  
    {
    HTREEITEM hChildItem = tree.GetChildItem(hItem);  
    while(hChildItem!=NULL)  
    {
    TreeVisit(tree, hChildItem);     //递归遍历孩子节点  
    hChildItem = tree.GetNextItem(hChildItem, TVGN_NEXT);  
    }  
    }  
    }// 访问代码
    CTreeCtrl tree;
    HTREEITEM hRoot = tree.GetRootItem();
    TreeVisit(tree, hRoot);
      

  4.   

    枚举所有Root节点
    HTREEITEM hRoot = m_tree.GetRootItem();
    while(hRoot)
    {
    hRoot = m_tree.GetNextItem(hRoot, TVGN_NEXT);
    }