我有一个派生自CTreeCtrl的类。在某些情况下,用户可能正在编辑它,我想以编程方式取消当前正在进行的编辑。
我该怎么做?似乎没有任何适当的类功能可以做到这一点,或者如果我必须向它发送一些消息,那么我不应该立即明白我应该发送的消息。
答案 0 :(得分:1)
我相信通过向树控件发送TVM_ENDEDITLABELNOW消息或使用TreeView_EndEditLabelNow宏来实现这一点。
答案 1 :(得分:0)
要确定用户是否正在编辑标签,您必须等待后续消息:
TVN_BEGINLABELEDIT
和TVN_ENDLABELEDIT
。
要取消,只需将焦点设置为另一个节点。
答案 2 :(得分:0)
所以我最终发现我可以伪造Escape按钮按下编辑控件:
tree.GetEditControl()->SendMessage(WM_KEYDOWN, VK_ESCAPE, 1);
这似乎取消了适当的编辑。