遍历节点,并取得节点文本:
其中 m_vecTreeNode是CDlgTree成员变量(vector<string> m_vecTreeNode),将所有节点文本保存。
由于使用多字符集,所以可以
strTemp = cstr.GetBuffer(0);//是正确的
如果使用Unicode,参考<a target=_blank href="http://blog.csdn.net/xuepiaofei1/article/details/47093375" target="_blank">http://blog.csdn.net/xuepiaofei1/article/details/47093375</a>
传入的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);
}
}