MFC树视图:父节点不返回其子节点

时间:2013-04-26 08:59:39

标签: visual-c++ mfc

我正在开发一个项目,我面临着MFC树控件的困难。我想检查是否选择了任何子节点。当选择父节点(非扩展)并且当我在父节点上使用GetChildItem()时,它返回null。如果我在展开父节点后重复相同的操作并再次折叠它将返回子项。

if(this->ItemHasChildren(hItem))  //returning true (and i am sure that it has children)
{
    HTREEITEM hChild = this->GetChildItem (hItem);  //returning NULL;
}

如果我展开并折叠树,则上面的代码不会返回NULL。

1 个答案:

答案 0 :(得分:0)

尝试类似

的内容
HTREEITEM hItem = treeCtrl->GetRootItem();
if (treeCtrl->ItemHasChildren(hItem))
{
    hItem = treeCtrl->GetNextItem(hItem, TVGN_CHILD);

    //do things

    while (hItem != NULL)
    {
        hItem = treeCtrl->GetNextItem(hItem, TVGN_NEXT);
        //do things
    }
}

如果你想深入了解树,你必须在此基础上做一个递归函数。