我使用MFC文档/视图体系结构在C++中进行编程。我一直在努力实现类似MFC CEdit lose focus handler的东西。正如答案所示,我处理了消息EN_KILLFOCUS。子窗口(CEdit)失去焦点
基本上,我正在这样做:我在视图中绘制了文本。当用户单击视图中文本的区域时,我将定位并在其上方显示CEdit窗口,以便用户能够编辑文本。当编辑失去焦点时,我得到CEdit文本并将其保存在文档中。然后使视图无效。
但是,当视图失去焦点时,我似乎只收到EN_KILLFOCUS消息。我必须在其他地方点击,例如对接窗口或工具栏,以使CEdit失去焦点。我希望它发生在我在CEdit框外部的视图上单击任何其他位置时。
我正在用WS_CHILD样式创建CEdit。我试过WS_POPUP,但仍然是同样的问题。
任何帮助,将不胜感激。
嗯......我试过了。但它似乎并不奏效。如果整个观点失去了重点,我仍然只会收到消息。 – l3utterfly
嗯..你是否把注意力集中在视图的鼠标上?如果没有,请在视图的LButtonDown上调用SerFocus().. –
谢谢!那就是诀窍。但是,我发现,CEdit的子类化已经没有意义了。我可以在父窗口OnCommand中处理EN_KILLFOCUS – l3utterfly