| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1651 人关注过本帖
标题:[原创][分享]CTreeCtrl的递归算法应用
只看楼主 加入收藏
C++大粉丝
Rank: 4
等 级:贵宾
威 望:10
帖 子:477
专家分:0
注 册:2004-4-23
收藏
 问题点数:0 回复次数:2 
[原创][分享]CTreeCtrl的递归算法应用
/*姬昂于2004-10月添加递归算法,实现树控件的全选,反选,取消的集合操作*/
void CXmRecive::RetrievesAllSiblingTreeSetCheck(CTreeCtrl* pTreeCtrl/* = NULL */,
            HTREEITEM Item/* = NULL */,
            BOOL IsSelected/* = FALSE */,
            BOOL IsReverse/* = FALSE*/)
{
 
 if (!Item)
  return ;
 
 if (!IsReverse)
  pTreeCtrl->SetCheck(Item,IsSelected);
 else
  pTreeCtrl->SetCheck(Item,!pTreeCtrl->GetCheck(Item));
 
 RetrievesAllSiblingTreeSetCheck(pTreeCtrl,pTreeCtrl->GetChildItem(Item),IsSelected,IsReverse);
 
 RetrievesAllSiblingTreeSetCheck(pTreeCtrl,pTreeCtrl->GetNextSiblingItem(Item),IsSelected,IsReverse);
}
搜索更多相关主题的帖子: CTreeCtrl 递归 算法 应用 分享 
2004-11-08 18:42
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
好夸张哦~~~看不懂,要注释……
2004-11-12 21:39
_我爱我家_
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2004-10-31
收藏
得分:0 

void CXmRecive::RetrievesAllSiblingTreeSetCheck(CTreeCtrl* pTreeCtrl,HTREEITEM Item,BOOL IsSelected,BOOL IsReverse) { if (!Item)//是否为树节点,非则返回树的上一(父或兄弟)节点

return ; if (!IsReverse) //该树节点是否被选中过》 pTreeCtrl->SetCheck(Item,IsSelected); else pTreeCtrl->SetCheck(Item,!pTreeCtrl->GetCheck(Item)); RetrievesAllSiblingTreeSetCheck(pTreeCtrl,pTreeCtrl->GetChildItem(Item),IsSelected,IsReverse);//选找该节点的Child节点 RetrievesAllSiblingTreeSetCheck(pTreeCtrl,pTreeCtrl->GetNextSiblingItem(Item),IsSelected,IsReverse););//选找该节点的NextSibling节点 }

这是典型的递归算法,用的前序便历。详细可看一些数据结构方面的书


最近很忙,要考试 所以如果有什么不便的地方,请大虾们多包涵
2004-11-13 19:05
快速回复:[原创][分享]CTreeCtrl的递归算法应用
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024274 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved