现在要做一个软件,用到树形控件,不知道怎么让它的子结点同步展开.比如我在编辑框中输入一个子节点的值,右边没有展开的节点会展开.

解决方案 »

  1.   

    自己写算法遍历整棵树,展开遍历的每个节点就是了。 TreeCtrl没有提供专门的函数展开所有节点,要自己写递归算法!
      

  2.   

    HTREEITEM CBrowserView::FindNode(HTREEITEM hSubRoot, const CString & text)
    {
    if (hSubRoot == NULL) return NULL; //判断是否符合条件,如是,返回该节点的举柄;
    if (m_tree.GetItemText(hSubRoot) == text)
    return hSubRoot;
    hSubRoot = m_tree.GetChildItem(hSubRoot);
    do
    {
    HTREEITEM ht;
    //递归调用FindNode;
    if ((ht = FindNode(hSubRoot, text)) != NULL)
    return ht; }
    while ((hSubRoot = m_tree.GetNextSiblingItem(hSubRoot)) != NULL);
    return NULL;
    }