我现在做了个TreeView,结构如下图说示:
+A
---B
---C
我想右击某个结点,跳出个菜单,菜单中有个选项是Rename,点击后,能让用户输入名字,实现结点的改名,请问应该怎么实现

解决方案 »

  1.   

    给TreeCtrl添加TVS_EDITLABELS风格
    然后响应事件TVN_ENDLABELEDIT
      

  2.   

    我现在是这样做的,发现当用户缓慢双击时可以响应这个事件,实现Rename,没错
    可是我在程序里添加了这个消息 ON_COMMAND(ID__RENAME, OnRenameItem),那么在afx_msg void OnRenameSelectSets()这个函数里我应该怎么写才能实现rename呢,(名字由用户从键盘输入)
      

  3.   

    响应 TVN_ENDLABELEDIT 
        ptvdi = (LPNMTVDISPINFO) lParam typedef struct tagNMTVDISPINFO {
        NMHDR hdr; 
        TVITEM item; 
    } NMTVDISPINFO, FAR *LPNMTVDISPINFO; item中有你想要的Text
      

  4.   

    CWnd*  focus = GetFocus();
          CEdit* edit  = treectrl->GetEditControl();
          if ((CEdit *) focus == edit)
          {
    //或者自己通过GetEditControl得到edit,并GetWindowText
             rvalue = TRUE;
          }