如何当点击树的某个节点时让一个CString类型变量获取该节点到根节点的路径
比如说,根节点->一级子节点->二级子节点->三级子节点->四级子节点
当我点击四级子节点时CString类型变量str等于:
根节点\一级子节点\二级子节点\三级子节点\四级子节点
当我点击二级子节点时str等于:
根节点\一级子节点\二级子节点
本人初学VC++水平有限请各位大侠说的详细些

解决方案 »

  1.   

    处理NM_CLICK通告消息  
    先获得当前节点,然后循环调用GetParentItem看看有没有父节点,有就用GetItemText得到节点名称,直到GetParentItem返回空为止
      

  2.   


    CString  strpath = m_ctrltree.GetItemText(htreeitem);  //htreeitem为当前选中节点HTREEITEM
    HTREEITEM  hfatheritem = m_ctrltree.GetParentItem(htreeitem);
    while(hfatheritem)
    {
        strpath = m_ctrltree.GetItemText(hfatheritem)+"/"+strpath;
        hfatheritem = m_ctrltree.GetParentItem(hfatheritem);
    }//strpath就是你要的
      

  3.   

    帮LS简化一下。
    CString path;
    HTREEITEM item = m_TreeCtrl.GetSelectedItem();
    do {
        path = m_TreeCtrl.GetItemText(item) + _T("\\") + path;
        item = m_TreeCtrl.GetParentItem(item);
    } while (item != NULL);如果在意执行效率可以在循环中用栈结构先push各级item的text,循环结束后再执行一个循环逐一pop并连接。