递归遍历树视图控件选中的节点
来源:互联网 发布:兰州市政府网络留言板 编辑:程序博客网 时间:2024/05/21 14:56
InitDialog.......
// TODO: Add extra initialization here
m_ImageList.Create(24,24,ILC_COLOR24|ILC_MASK,1,1);
m_ImageList.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON1)));
m_ImageList.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON2)));
m_ImageList.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON3)));
m_ImageList.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON4)));
m_OrgInfo.SetImageList(&m_ImageList,TVSIL_NORMAL);
HTREEITEM hProvince=m_OrgInfo.InsertItem("吉林省",0,0);
HTREEITEM hTown=m_OrgInfo.InsertItem("松原市",1,1,hProvince);
HTREEITEM hTown1=m_OrgInfo.InsertItem("白城市",1,1,hProvince);
m_OrgInfo.InsertItem("吉林市",1,1,hProvince);
m_OrgInfo.InsertItem("长春市",1,1,hProvince);
m_OrgInfo.InsertItem("扶余县",2,2,hTown);
m_OrgInfo.InsertItem("前郭县",2,2,hTown);
m_OrgInfo.InsertItem("长岭县",2,2,hTown);
m_OrgInfo.InsertItem("农安县",2,2,hTown);
m_OrgInfo.InsertItem("宁江区",2,2,hTown1);
m_OrgInfo.InsertItem("江宁区",2,2,hTown1);
m_OrgInfo.SetTextColor(RGB(255,0,0));//设置树视图控件文本颜色
void CDoesZoneDlg::IterateTree(HTREEITEM hItem)//递归遍历树视图控件选中的节点
{if(hItem!=NULL)//判断节点是否为空
{
if(m_OrgInfo.GetCheck(hItem))//判断节点是否被选中
{
m_SelItemList.Add(hItem);//向数组中添加节点句柄
}
HTREEITEM hSibling=m_OrgInfo.GetNextItem(hItem,TVGN_NEXT);//读取下一个兄弟节点
while(hSibling)//遍历所有兄弟节点
{
if(m_OrgInfo.GetCheck(hSibling))//判断兄弟节点是否被选中
{
m_SelItemList.Add(hSibling);//添加兄弟节点到数组中
}
HTREEITEM hSibChild=m_OrgInfo.GetChildItem(hSibling);//获取子节点
if(hSibChild)
{
IterateTree(hSibChild);//递归调用
}
hSibling=m_OrgInfo.GetNextItem(hSibling,TVGN_NEXT);//获取下一个兄弟节点
}
HTREEITEM hChild=m_OrgInfo.GetChildItem(hItem);//获取当前节点的子节点
if(hChild!=NULL)
{
IterateTree(hChild);//递归调用
}
}
}
void CDoesZoneDlg::OnTest()
{
m_SelItemList.RemoveAll();//删除所有数组元素
m_SelList.ResetContent();//删除列表控件数据
HTREEITEM hRoot=m_OrgInfo.GetRootItem();//获取根节点
IterateTree(hRoot);//递归遍历节点
int nCount=m_SelItemList.GetSize();//获取数组元素数量
HTREEITEM hItem=NULL;
CString szItemText="";
for(int i=0;i<nCount;i++)//遍历数组元素
{
hItem=m_SelItemList.GetAt(i);//获取指定数组元素
if(hItem!=NULL)
{
szItemText=m_OrgInfo.GetItemText(hItem);//获取节点文本
m_SelList.AddString(szItemText);//将文本添加到列表中
}
}
}
- 递归遍历树视图控件选中的节点
- 递归方法遍历树节点,使用Dev的TreeList控件
- MzTreeView 递归遍历 设置指定节点 选中
- net2005中,树的加载,遍历,选中特定的节点
- 树形节点的递归遍历
- 一个遍历树控件节点的方法
- golang 递归遍历树节点
- c# winform 遍历TreeView控件(属性为checkbox时)中,所有被选中的节点
- 遍历TreeView得到选中的节点
- Java二叉树的递归,非递归遍历,高度,节点数,叶子节点数
- Java二叉树的递归,非递归遍历,高度,节点数,叶子节点数
- 递归获取treeview选中父节点的所有子节点
- 遍历treeWidget节点,索引到要找的节点并选中
- 取CTreeCtrl控件选中节点的文字
- 所有的控件递归遍历
- C#递归遍历树节点并且存储
- delphi 递归遍历TreeView树节点
- 递归遍历所有xml的节点及子节点
- 如何彻底卸载SQL Server 2005
- 废弃生物质可用于生产乙二醇
- 塔式、机架式、刀片式服务器的区别
- linux下如何统计一个目录下的文件个数以及代码总行数的命令
- myeclipse无法编译java源文件
- 递归遍历树视图控件选中的节点
- ASP页面静态化批量生成代码-实例详解
- HDU-1213(简单DFS)
- 进程,多线程研究
- 使用自动生成java文件和自动编译的静态代理模式-马士兵设计模式教程
- 打印(2)
- 发现Delphi.XE2.Update3 上使用 FireMonkey 开发,对 TImage3D 连续多次点击后,OnClick事件就不响应的解决
- awk 实例练习(二)
- 初学Spring必须弄懂的几个知识点