如何以编程方式结束编辑CTreeCtrl?

时间:2010-07-14 23:55:59

标签: mfc winapi

我有一个派生自CTreeCtrl的类。在某些情况下,用户可能正在编辑它,我想以编程方式取消当前正在进行的编辑。

我该怎么做?似乎没有任何适当的类功能可以做到这一点,或者如果我必须向它发送一些消息,那么我不应该立即明白我应该发送的消息。

3 个答案:

答案 0 :(得分:1)

我相信通过向树控件发送TVM_ENDEDITLABELNOW消息或使用TreeView_EndEditLabelNow宏来实现这一点。

答案 1 :(得分:0)

要确定用户是否正在编辑标签,您必须等待后续消息: TVN_BEGINLABELEDITTVN_ENDLABELEDIT

要取消,只需将焦点设置为另一个节点。

答案 2 :(得分:0)

所以我最终发现我可以伪造Escape按钮按下编辑控件:

tree.GetEditControl()->SendMessage(WM_KEYDOWN, VK_ESCAPE, 1);

这似乎取消了适当的编辑。