1

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 を返しません。

4

1 に答える 1

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
    }
}

ツリーをさらに深く掘り下げたい場合は、これに基づいて再帰関数を実行する必要があります。

于 2014-04-05T03:48:45.293 に答える