磊是这种继承关系 class CDragDropTreeCtrl : public CTreeCtrl对象是这样定义的 CDragDropTreeCtrl m_treeCtrl;在一个视图中如下创建:
m_treeCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|TVS_HASLINES|TVS_LINESATROOT
|TVS_HASBUTTONS|TVS_TRACKSELECT|TVS_SHOWSELALWAYS
|TVS_EDITLABELS , //这表示允许修改
rect,this, 1001);问题:我在视图中修改了节点标签,但改后又变回原样了,查看了参考书,说要响应TVN_ENDLABELEDIT 消息才能使修改生效。然而在 classwizard 中,更本没有该消息,可是新建一个类,从CTreeView继承,便有该消息,在新建类中建立了该消息处理函数,然后把源码拷贝到我的视图中,并且把claddwizard生成的有关该函数的代码都拷到了相应的位置,本来以为可以了,可问题依旧,调试时该消息根本没有得到响应。请大侠支招,拜谢

解决方案 »

  1.   

    OnEndlabeledit(NMHDR* pNMHDR, LRESULT* pResult) 
    {CString m_strItemText="";
    GetDlgItemText(GetTreeCtrl().GetEditControl()->GetDlgCtrlID(),m_strItemText);
    SetItemText(hItem, m_strItemText);
    }
      

  2.   

    http://www.codeproject.com/treectrl/proptree.asp
      

  3.   

    哎呀,解决了响应问题了,把那些东东拷到CDragDropTreeCtrl 中就可以了,但是,保存修改后的标签信息的代码,请大侠给一个吧,
    void CDragDropTreeCtrl::OnEndlabeledit(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    TV_DISPINFO* pTVDispInfo = (TV_DISPINFO*)pNMHDR;
    // TODO: Add your control notification handler code here

    *pResult = 0;
    }就是这个函数内部怎么填了?
      

  4.   

    to:风中王子:
      你的代码中的 SetItemText(hItem, m_strItemText); 
      其中 hItem 应该是当前选定的节点了,怎么得到它呢?如果可能的话,能不能帮忙解释一下(NMHDR* pNMHDR, LRESULT* pResult) 这些参数是什么意思,或者在哪儿可以看到它们的相关信息。谢了