mfc ctreectrl遍历所有节点

遍历节点,并取得节点文本:

其中  m_vecTreeNode是CDlgTree成员变量(vector  m_vecTreeNode),将所有节点文本保存。

由于使用多字符集,所以可以

strTemp = cstr.GetBuffer(0);//是正确的
如果使用Unicode,参考http://blog.csdn.net/xuepiaofei1/article/details/47093375
传入的ht是根节点

void CDlgTree::TravelAll(HTREEITEM ht)
{

	string strTemp;
	CString cstr = m_wndTree.GetItemText(ht);
	strTemp = cstr.GetBuffer(0);
	HTREEITEM hCurItem = m_wndTree.GetChildItem(ht);
	
	m_vecTreeNode.push_back(strTemp);

	HTREEITEM hNextItem;
	while(hCurItem)
	{
		hNextItem = hCurItem;
		TravelAll(hNextItem);
		hCurItem = m_wndTree.GetNextSiblingItem(hCurItem);
	}
}


你可能感兴趣的:(VS2008,原创)