您的位置:首页 > 其它

tree树形控件之循环遍历

2010-02-26 14:05 459 查看
最近在写程序时需要对树形控件进行查询指定文本的内容,因此写了本函数。

//item:待遍历树的根节点,strtext:待查找节点名称
HTREEITEM Ctest2Dlg::FindItem(CTreeCtrl &ctrlTree ,HTREEITEM item, CString strtext)
{
HTREEITEM hfind;

//空树,直接返回NULL
if(item == NULL)
return NULL;

//遍历查找
while(item!=NULL)
{
//当前节点即所需查找节点
if(ctrlTree.GetItemText(item) == strtext)
return item;

//查找当前节点的子节点
if(ctrlTree.ItemHasChildren(item))
{
item=ctrlTree.GetChildItem(item);
//递归调用查找子节点下节点

hfind = FindItem(ctrlTree,item,strtext);
if(hfind)
{
return hfind;
}
else
{
//子节点中未发现所需节点,继续查找兄弟节点
item = ctrlTree.GetNextSiblingItem(ctrlTree.GetParentItem(item));
}
}else
{
//若无子节点,继续查找兄弟节点
item = ctrlTree.GetNextSiblingItem(item);
}
}

return item;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: