CTreeCtrl 知道父项名怎么在其下添加子项? 如题!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 必须先用父项名找到对应的HTREEITEM才能加子项。如果父项名有重复,就没救了。 首先根据父项名找到对应的HTREEITEM ,遍历所有的item比较字符串得到父项的HTREEITEM后调用HTREEITEM InsertItem( LPCTSTR lpszItem, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST ); 遍历函数 void TreeVisit(CTreeCtrl& tree, HTREEITEM hItem) { //DoWithItem(hItem); //访问当前节点 if (tree.ItemHasChildren(hItem)) { HTREEITEM hChildItem = tree.GetChildItem(hItem); while(hChildItem!=NULL) { TreeVisit(tree, hChildItem); //递归遍历孩子节点 hChildItem = tree.GetNextItem(hChildItem, TVGN_NEXT); } } } // 访问代码 CTreeCtrl tree; HTREEITEM hRoot = tree.GetRootItem(); TreeVisit(tree, hRoot); 枚举所有Root节点 HTREEITEM hRoot = m_tree.GetRootItem(); while(hRoot) { hRoot = m_tree.GetNextItem(hRoot, TVGN_NEXT); } HTREEITEM hti = m_wndTree.InsertItem(_T("父项"));m_wndTree.InsertItem(_T("子项"), hti); pTree->InsertItem(&父节点); list control控件新手问题 VC6.0有没有性能测试工具 如何不显示数据库连接失败信息??? 请问《windows核心编程》中的代码怎么老是有错 转到动态网页 对话框,如何实现类似qq里面聊天记录的动态弹出窗口? 紧急求救:如何让选择对话框的窗体以DoModal的方式显示呢? 关于刷新窗口的问题 如何把资源文件编译进exe中 MFC串口编程,用的是MSCOMM控件,为什么发送多条命令时不会发一条,接收一条;而是所有发完再返回? IT小李传 远程线程进行DLL注入 求SMTP源码
得到父项的HTREEITEM后调用
HTREEITEM InsertItem(
LPCTSTR lpszItem,
HTREEITEM hParent = TVI_ROOT,
HTREEITEM hInsertAfter = TVI_LAST
);
void TreeVisit(CTreeCtrl& tree, HTREEITEM hItem)
{
//DoWithItem(hItem); //访问当前节点
if (tree.ItemHasChildren(hItem))
{
HTREEITEM hChildItem = tree.GetChildItem(hItem);
while(hChildItem!=NULL)
{
TreeVisit(tree, hChildItem); //递归遍历孩子节点
hChildItem = tree.GetNextItem(hChildItem, TVGN_NEXT);
}
}
}
// 访问代码
CTreeCtrl tree;
HTREEITEM hRoot = tree.GetRootItem();
TreeVisit(tree, hRoot); 枚举所有Root节点
HTREEITEM hRoot = m_tree.GetRootItem();
while(hRoot)
{
hRoot = m_tree.GetNextItem(hRoot, TVGN_NEXT);
}
m_wndTree.InsertItem(_T("子项"), hti);