递归实现MFC TreeControl动态建树

本文介绍了一个使用递归在MFC TreeControl中动态构建树形结构的方法。通过MySingletonManager类获取对象,并根据对象之间的父子关系,遍历所有子对象,将它们插入到TreeControl中。在遍历过程中,对每个有子对象的节点进行递归调用,以展开完整的树结构。最后,展开树节点以显示所有层级。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

void CFileView::BulidTreeView( HTREEITEM tree_node)

{

//我的控制类

MySingletonManager& my_manager = MySingletonManager::GetSingleton( );

 

//通过名字找到我的对象

MyStaff* my_staff = my_manager .SearchStaff(mTreeControl.GetItemText(tree_node).GetBuffer(0) );

 

//遍历这个对象的所有孩子,并添加至TreeControl

for(unsigned int i=0; i< my_staff->mChilds.Number(); i++)

{

MyStaff* child_staff = my_manager.GetStaff(my_staff->mChilds[i]);//查找

HTREEITEM child_node = mTreeControl.InsertItem( child_staff->mName.c_str() ,tree_node);//添加

 

// 孩子有孩子么?

if(child_staff->mChilds.Number() >0 )

{

BulidTreeView(child_node);//递归

}

}

mTreeControl.Expand(tree_node,   TVE_EXPAND); // 展开节点

}

 

 

MySingletonManager:类的单件注册表

MyStaff:类,互相之间可能有父子关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值