如何复制或移动CTreeCtrl中的某个叶节点? 想移动或复制CTreeCtrl中的某个叶节点到CTreeCtrl的其他位置,包括叶结点的子节点以及孙节点。不知道该怎么做,有没有简单的方法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你试试看//节点数int iCount = 0; // 根节点HTREEITEM hRoot = m_YourTree.GetRootItem(); //调用函数得到结果iCount = GetExpItemCount(hRoot, iCount);//GetExpItemCount( )函数体。//作用:遍历数得到展开的节点数;//参数说明:HTREEITEM hRoot:根节点 , int iCount:累计节点数int GetExpItemCount(HTREEITEM hItem, int iCount){ BYTE bItemState = 0; HTREEITEM hChild; if(hItem != NULL) { iCount++; bItemState = m_Tree.GetItemState(hItem, TVIS_EXPANDED); hChild = m_Tree.GetChildItem(hItem); if((bItemState & TVIS_EXPANDED) == TVIS_EXPANDED && hChild != NULL) { iCount = GetExpItemCount(hChild, iCount); } hItem = m_Tree.GetNextSiblingItem(hItem); if(hItem != NULL) { iCount = GetExpItemCount(hItem, iCount); } } return iCount;} 总算解决了。void MoveItem(CTreeCtrl& myTree,HTREEITEM hFromItem,HTREEITEM hToItem){ HTREEITEM hChild,hItem; if(hFromItem != NULL) { hChild = myTree.GetChildItem(hFromItem); while(hChild != NULL) { hItem = myTree.InsertItem(myTree.GetItemText(hChild),hToItem); MoveItem(myTree,hChild,hItem); hChild = myTree.GetNextSiblingItem(hChild); } }} 请问怎么把界面下类视图隐藏掉啊,如图 activex的钩子问题 命令行参数的长度有限制吗? 为什么缓冲CDC背景是黑的? 我写的全局钩子为和没反映?给看一看代码吧!谢谢各位! (急!急!)窗口停靠 位图菜问题 关于有没有MFC类实现数据结构里的堆栈和队列功能的模板? 在线等待 关于TTS的程序 ●●●我怎么找不到菜单项的代码,急在线等●●● 线程跳到对话框DLG的其中某一个函数时,在对话框中的CEdit控件的EnableWindow()得不到窗口句柄??
int iCount = 0; // 根节点
HTREEITEM hRoot = m_YourTree.GetRootItem(); //调用函数得到结果
iCount = GetExpItemCount(hRoot, iCount);//GetExpItemCount( )函数体。
//作用:遍历数得到展开的节点数;
//参数说明:HTREEITEM hRoot:根节点 , int iCount:累计节点数
int GetExpItemCount(HTREEITEM hItem, int iCount)
{
BYTE bItemState = 0;
HTREEITEM hChild; if(hItem != NULL)
{
iCount++;
bItemState = m_Tree.GetItemState(hItem, TVIS_EXPANDED);
hChild = m_Tree.GetChildItem(hItem);
if((bItemState & TVIS_EXPANDED) == TVIS_EXPANDED
&& hChild != NULL)
{
iCount = GetExpItemCount(hChild, iCount);
} hItem = m_Tree.GetNextSiblingItem(hItem);
if(hItem != NULL)
{
iCount = GetExpItemCount(hItem, iCount);
}
}
return iCount;
}
void MoveItem(CTreeCtrl& myTree,HTREEITEM hFromItem,HTREEITEM hToItem)
{
HTREEITEM hChild,hItem;
if(hFromItem != NULL)
{
hChild = myTree.GetChildItem(hFromItem);
while(hChild != NULL)
{
hItem = myTree.InsertItem(myTree.GetItemText(hChild),hToItem);
MoveItem(myTree,hChild,hItem);
hChild = myTree.GetNextSiblingItem(hChild);
}
}
}