我想从root开始遍历treeview中的所有item,如果发现是child item,则GetItemData。最好是非递归的方法
最好给出代码,谢谢了!
最好给出代码,谢谢了!
解决方案 »
- 求助抓包程序
- 怎样获取操作系统的版本包括visita
- 谁把我的IE的首页地址搞的不能改了?
- 一个和Font有关的内存泄露问题
- Microsoft Visual Studio .NET的送分问题
- 小游戏求教
- VC6.0中怎样设置断点,单步调试
- "内存是分配在栈上,则系统会自己释放内存。" 是什么意思? 谢谢!!!
- ★★★ 关于在 OutLook风格的视图 里放置 列表框★★★别看只有22分,等你答对了,我还由几个帖子的你去领分(
- 有关显示位图的问题
- 为什么管理员身份调用pcap_findalldevs()得到却是空列表
- Visual Studio 2008 MFC应用程序怎么快速改应用程序右上角图标?
怎么遍历?我这样对吗:
void CBaseMemberManage::TravelTreeList(HTREEITEM hItem)
{
HTREEITEM hTemp;
hTemp = m_ctrlTree.GetNextItem(hItem,TVGN_CHILD);
if(hTemp != NULL)
{
TravelTreeList(hTemp);
} hTemp = hItem;
while( (hTemp = m_ctrlTree.GetNextItem(hTemp,TVGN_NEXT)) != NULL )
{
TravelTreeList(hTemp);
}
if(m_ctrlTree.GetCheck(hItem) && m_ctrlTree.GetParentItem(hItem) == NULL)
{
DWORD dwData = m_ctrlTree.GetItemData(hItem);
g_MyConnection.WriteLong(m_MemberInfoVector.at(dwData).GetShopUserId());
g_MyConnection.WriteUTF(m_MemberInfoVector.at(dwData).GetMobileTel());
}
}
{
if(m_ctrlTree.GetCheck(hItem) && m_ctrlTree.GetParentItem(hItem) == NULL)
{
DWORD dwData = m_ctrlTree.GetItemData(hItem);
g_MyConnection.WriteLong(m_MemberInfoVector.at(dwData).GetShopUserId());
g_MyConnection.WriteUTF(m_MemberInfoVector.at(dwData).GetMobileTel());
}
TravelTreeList(hTemp);
}
HTREEITEM hTemp;
hTemp = m_ctrlTree.GetNextItem(hItem,TVGN_CHILD);
if(hTemp != NULL)
{
TravelTreeList(hTemp);
} while( (hTemp = m_ctrlTree.GetNextItem(hTemp,TVGN_NEXT)) != NULL )
{
if(m_ctrlTree.GetCheck(hItem) && m_ctrlTree.GetParentItem(hItem) == NULL)
{
DWORD dwData = m_ctrlTree.GetItemData(hItem);
g_MyConnection.WriteLong(m_MemberInfoVector.at(dwData).GetShopUserId());
g_MyConnection.WriteUTF(m_MemberInfoVector.at(dwData).GetMobileTel());
}
TravelTreeList(hTemp);
}
这样? 发现还是有问题啊