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

Mfc 如何以编程方式结束CTreeCtrl的编辑?,mfc,winapi,Mfc,Winapi,我有一个从CTreeCtrl派生的类。在某些情况下,用户可能正在编辑它,我希望以编程方式取消当前正在进行的编辑 我该怎么做?类中似乎没有任何适当的函数可以执行此操作,或者如果我必须向它发送一些消息,我也不清楚应该发送什么消息。要确定用户是否正在编辑标签,您必须等待触发消息: TVN\u开始标签编辑和TVN\u结束标签编辑 要取消,只需将焦点设置到另一个节点。因此我最终发现,我可以在编辑控件上按下一个退出按钮: tree.GetEditControl()->SendMessage(WM_KE

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


我该怎么做?类中似乎没有任何适当的函数可以执行此操作,或者如果我必须向它发送一些消息,我也不清楚应该发送什么消息。

要确定用户是否正在编辑标签,您必须等待触发消息:
TVN\u开始标签编辑
TVN\u结束标签编辑


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

因此我最终发现,我可以在编辑控件上按下一个退出按钮:

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

这似乎可以适当地取消编辑。

我认为可以通过向树控件发送消息或使用宏来实现这一点。

是的,我知道什么是TVN_ENDLABELEDIT,但我想知道如何让编辑控件生成其中一个。我很欣赏聚焦的建议,虽然这看起来有点尴尬-我必须找到另一个节点(可能不存在),然后我真的不想在之后聚焦它。。。谢谢你的建议。嗯,还有一个CTreeCtrl的EndEditLabelNow()方法。我老了一定是瞎了。。。谢谢你的回答!