CTreeCtrl m_TreeElemProperty;//头文件声明控件变量
/*——————————————————————初始化Dlg——————————————————————————*/
{
m_TreeElemProperty.ModifyStyle(0, TVS_CHECKBOXES); //设置树控件为带复选框风格
CString strTemp;
strTemp.Format(TEXT("%d"), ID);
HTREEITEM parent = m_TreeElemProperty.InsertItem(strTemp); //设置树控件内容
m_TreeElemProperty.SetCheck(parent, TRUE); //设置复选框为勾选状态
HTREEITEM sub1 = m_TreeElemProperty.InsertItem(strTemp, parent); //1级子节点
m_TreeElemProperty.SetCheck(sub1, TRUE);//设置复选框为勾选状态
HTREEITEM sub2 = m_TreeElemProperty.InsertItem(strTemp, sub1 ); //2级子节点
m_TreeElemProperty.SetCheck(sub2, TRUE);//设置复选框为勾选状态
ExpandTree(m_TreeElemProperty.GetRootItem());//递归展开所有结点
}
/*——————————————————————递归展开节点函数实现——————————————————————————*/
void CMyDlg::ExpandTree(HTREEITEM hTreeItem)
{
if (!m_TreeElemProperty.ItemHasChildren(hTreeItem))//如果树控件根节点没有子节点则返回
{
return;
}
HTREEITEM hChildItem;
while (hTreeItem)
{
hChildItem = m_TreeElemProperty.GetChildItem(hTreeItem);
if (hChildItem) //如果子节点下有内容 则展开
{
ExpandTree(hChildItem);//递归,展开子节点下的所有子节点
m_TreeElemProperty.Expand(hTreeItem, TVE_EXPAND);
}
hTreeItem = m_TreeElemProperty.GetNextSiblingItem(hTreeItem); //获取根节点的兄弟节点
}
}
[MFC] 遍历展开树控件所有节点
最新推荐文章于 2024-03-26 14:05:54 发布