如何遍历Treectrl每个节点

yunheehust 2003-07-18 09:24:39
如何遍历TreeCtrl每个节点,并写入文件中
...全文
341 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
stevenying 2003-12-31
  • 打赏
  • 举报
回复
mark
ablefirst 2003-07-18
  • 打赏
  • 举报
回复
HTREEITEM hChildItem,hBrotherItem;

//查找子节点,没有就结束
hChildItem=GetChildItem(hItem);
if(hChildItem!=NULL)
{
//设置子节点的状态与当前节点的状态一致
CTreeCtrl::SetItemState( hChildItem, INDEXTOSTATEIMAGEMASK(nState), TVIS_STATEIMAGEMASK );
//再递归处理子节点的子节点和兄弟节点
TravelChild(hChildItem, nState);

//处理子节点的兄弟节点和其子节点
hBrotherItem=GetNextSiblingItem(hChildItem);
while (hBrotherItem)
{
//设置子节点的兄弟节点状态与当前节点的状态一致
int nState1 = GetItemState( hBrotherItem, TVIS_STATEIMAGEMASK ) >> 12;
if(nState1!=0)
{
CTreeCtrl::SetItemState( hBrotherItem, INDEXTOSTATEIMAGEMASK(nState), TVIS_STATEIMAGEMASK );
}
//再递归处理子节点的兄弟节点的子节点和兄弟节点
TravelChild(hBrotherItem, nState);
hBrotherItem=GetNextSiblingItem(hBrotherItem);
}
}
xiaohedou 2003-07-18
  • 打赏
  • 举报
回复
GetRootItem、GetChildItem、GetNextItem

学习!
SeainBlue 2003-07-18
  • 打赏
  • 举报
回复
要用到嵌套调用

先用GetRootItem得到根节点
然后GetChildItem、GetNextItem得到第一层子节点
在得到子节点的时候嵌套调用本身函数
如果GetChildItem返回NULL说明是子节点,返回就可以了
cnpeople 2003-07-18
  • 打赏
  • 举报
回复
HTREEITEM 遍历(HTREEITEM ht)
{
Tree.Expand(ht,TVE_EXPAND);
cout<<Tree.GetItemText(ht);
if(Tree.GetNextItem(ht,TVGN_NEXTVISIBLE))
{

遍历(Tree.GetNextItem(ht,TVGN_NEXTVISIBLE));
}
else
return NULL;
}
调用
遍历(Tree.GetRootItem());

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧