HTREEITEM CTreeFind(CTreeCtrl& tree, HTREEITEM hRootItem, unsigned int ulNode)
{
DWORD ulData;
HTREEITEM hTreeRes;
hTreeRes = NULL;
ulData = tree.GetItemData(hRootItem);
if (ulData == ulNode)
{
hTreeRes = hRootItem;
}
else if (tree.ItemHasChildren(hRootItem))
{
HTREEITEM hChildItem = tree.GetChildItem(hRootItem);
while(hChildItem!=NULL)
{
hTreeRes = CTreeFind(tree, hChildItem, ulNode);
if (hTreeRes != NULL)
{
break;
}
hChildItem = tree.GetNextItem(hChildItem, TVGN_NEXT);
}
}
return hTreeRes;
}
HTREEITEM GetTreeItem(unsigned int ulNode)
{
HTREEITEM pRes = NULL;
HTREEITEM pRoot = NULL;
pRoot = m_treeMain.GetRootItem();
while (pRoot != NULL)
{
pRes = CTreeFind(m_treeMain, pRoot, ulNode);
if (pRes != NULL)
{
break;
}
pRoot = m_treeMain.GetNextItem(pRoot, TVGN_NEXT);
}
return pRes;
}
本文介绍了一种在树形控件中查找特定节点的方法。通过递归遍历树形结构,该方法能够从根节点开始查找具有指定数据的节点。适用于需要在复杂树形结构中快速定位元素的应用场景。
1657

被折叠的 条评论
为什么被折叠?



