使用treecltr时点两次item的名字会使item进入编辑状态,然后会收到TVN_BEGINLABELEDIT消息。
某些条件下(比如失去焦点 再点一次)需要item不进入编辑状态,怎样实现。(收到TVN_BEGINLABELEDIT时他已经变成编辑状态了,有没有更靠前的消息)

解决方案 »

  1.   

    void CLeftView::OnBeginlabeledit(NMHDR* pNMHDR, LRESULT* pResult) 
    {// For control xxx dir, rename is not allowed! 
    *pResult = TRUE;// finish "rename"
    }
      

  2.   

    你要觉得不好控制edit label状态,你可以使用加个CEdit控件,双击某一个节点的时候,显示CEdit控件,在CEdit中进行编辑,编辑完成将数据写入对应的Item中。这样控制完全在你的掌握之中
      

  3.   

    这个东西确实不好控制,我一般的做法是:
    1.EditLabel false.
    2.contextmenu提供edit功能,然后BeginEdit/EndEidt.
      

  4.   


    恩这样应该可以。
    但是windows那个是选中后 再点击一下就出edit、不仅仅是双击事件
    所以还得模拟这套东西 如果控制那个实在太难的话就只有这样了
      

  5.   

    *pResult = TRUE;// finish "rename"
    后edit马上就关闭了