CTreeCtrl展开、收起子节点下所有的节点
转载自:http://blog.csdn.net/zmaojun/article/details/4006681
1.展开所有子节点
[cpp] view plain copy print ?- void ExpandTree(CTreeCtrl* pTreeCtrl,HTREEITEM hItem)
- {
- HTREEITEM hChild,hNext,hParent;
- if((!hItem)||(!pTreeCtrl))
- return;
- //存在则展开节点
- pTreeCtrl->Expand(hItem,TVE_EXPAND);
- hChild = pTreeCtrl->GetNextItem(hItem,TVGN_CHILD);
- if(hChild)
- {//如果有子节点,展开子节点
- ExpandTree(pTreeCtrl,hChild);
- }
- else
- {//没有子节点,寻找其兄弟节点
- hNext = pTreeCtrl->GetNextItem(hItem,TVGN_NEXT);
- if(hNext)
- {//存在兄弟节点
- ExpandTree(pTreeCtrl,hNext);
- }
- else
- {//不存在兄弟节点,继续找父节点
- hParent = pTreeCtrl->GetParentItem(hItem);
- hNext = pTreeCtrl->GetNextItem(hParent,TVGN_NEXT);
- if(hNext)
- ExpandTree(pTreeCtrl,hNext);
- }
- }
- }
void ExpandTree(CTreeCtrl* pTreeCtrl,HTREEITEM hItem)
{HTREEITEM hChild,hNext,hParent;if((!hItem)||(!pTreeCtrl))return;//存在则展开节点pTreeCtrl->Expand(hItem,TVE_EXPAND);hChild = pTreeCtrl->GetNextItem(hItem,TVGN_CHILD);if(hChild){//如果有子节点,展开子节点ExpandTree(pTreeCtrl,hChild);}else{//没有子节点,寻找其兄弟节点hNext = pTreeCtrl->GetNextItem(hItem,TVGN_NEXT);if(hNext){//存在兄弟节点ExpandTree(pTreeCtrl,hNext); }else{//不存在兄弟节点,继续找父节点hParent = pTreeCtrl->GetParentItem(hItem);hNext = pTreeCtrl->GetNextItem(hParent,TVGN_NEXT);if(hNext)ExpandTree(pTreeCtrl,hNext);}}
} 2.收起所有子节点
[cpp] view plain copy print ?
- void CollapseTree(CTreeCtrl* pTreeCtrl,HTREEITEM hItem)
- {
- HTREEITEM hChild,hNext,hParent;
- if((!hItem)||(!pTreeCtrl))
- return;
- //存在则收起节点
- pTreeCtrl->Expand(hItem,TVE_COLLAPSE);
- hChild = pTreeCtrl->GetNextItem(hItem,TVGN_CHILD);
- if(hChild)
- {//如果有子节点,收起子节点
- CollapseTree(pTreeCtrl,hChild);
- }
- else
- {//没有子节点,寻找其兄弟节点
- hNext = pTreeCtrl->GetNextItem(hItem,TVGN_NEXT);
- if(hNext)
- {//存在兄弟节点
- CollapseTree(pTreeCtrl,hNext);
- }
- else
- {//不存在兄弟节点,继续找父节点
- hParent = pTreeCtrl->GetParentItem(hItem);
- hNext = pTreeCtrl->GetNextItem(hParent,TVGN_NEXT);
- if(hNext)
- CollapseTree(pTreeCtrl,hNext);
- }
- }
- }
void CollapseTree(CTreeCtrl* pTreeCtrl,HTREEITEM hItem)
{HTREEITEM hChild,hNext,hParent;if((!hItem)||(!pTreeCtrl))return;//存在则收起节点pTreeCtrl->Expand(hItem,TVE_COLLAPSE);hChild = pTreeCtrl->GetNextItem(hItem,TVGN_CHILD);if(hChild){//如果有子节点,收起子节点CollapseTree(pTreeCtrl,hChild);}else{//没有子节点,寻找其兄弟节点hNext = pTreeCtrl->GetNextItem(hItem,TVGN_NEXT);if(hNext){//存在兄弟节点CollapseTree(pTreeCtrl,hNext); }else{//不存在兄弟节点,继续找父节点hParent = pTreeCtrl->GetParentItem(hItem);hNext = pTreeCtrl->GetNextItem(hParent,TVGN_NEXT);if(hNext)CollapseTree(pTreeCtrl,hNext);}}
} 本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
