资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

我想按结点名称在树中查找到该结点,并展开它,应该如何实现?

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

如题

网友回答:

发表者:happyparrot

如果你的树中节点名称有重复的话,好像是没有办法找到你想要的那个节点的。  
  如果没有重复的话,那么可以做个递归函数,从根节点开始,遍历所有的子节点,查找节点名称是否是你需要的。否则查找下一个兄弟节点即可。

发表者:liuxianzhi

从parent开始查找名为name的子节点  
  HTREEITEM   CDlgFenlei::FindNode(HTREEITEM   parent,const   char   *name)  
  {  
  HTREEITEM   child;  
  if(parent==TVI_ROOT)  
  child=m_Fenlei.GetRootItem();  
  else    
  child=m_Fenlei.GetChildItem(parent);  
  CString   text;  
  HTREEITEM   item;  
  while(child!=NULL){  
  text=m_Fenlei.GetItemText(child);  
  if(text==name)return   child;  
  item=FindNode(child,name);  
  if(item!=NULL)return   item;  
  child=m_Fenlei.GetNextSiblingItem(child);  
  }  
  return   NULL;  
  }  
 

发表者:liuxianzhi

展开节点  
  m_Fenlei.Expand(curNode,TVE_EXPAND);

发表者:try876

如果不按节点名称查,可以用关联的数据查  
  还是用递归,再用GetItemData()比较就行


 

 
热门推荐笔记本: IBM笔记本
相关文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved