gpt4 book ai didi

c++ - 子窗口 (CEdit) 失去焦点

转载 作者:太空宇宙 更新时间:2023-11-04 11:39:34 24 4
gpt4 key购买 nike

我正在使用 MFC 文档/ View 架构使用 C++ 进行编程。我一直在努力实现类似于 MFC CEdit lose focus handler 的东西.我按照答案建议处理了消息 EN_KILLFOCUS。

基本上,我是这样做的:我在 View 中绘制了文本。当用户单击 View 中的文本区域时,我会在其上方放置并显示 CEdit 窗口,以便用户能够编辑文本。当编辑失去焦点时,我得到 CEdit 文本并将其保存在文档中。然后使 View 无效。

但是,我似乎只在 View 失去焦点时才收到 EN_KILLFOCUS 消息。我必须点击其他地方,例如停靠窗口或工具栏,使 CEdit 失去焦点。我希望它在我单击 CEdit 框外的 View 上的任何其他位置时发生。

我正在创建具有 WS_CHILD 样式的 CEdit。我尝试了 WS_POPUP 但仍然是同样的问题。

如有任何帮助,我们将不胜感激。

最佳答案

创建 CEdit 派生类/控件。并在您的 View 中创建此类的实例

在派生类中处理 EN_KILLFOCUS。一旦用户在编辑控制窗口外单击,您将能够处理此消息。
将您的编辑框保留为 WS_CHILD。

在 View 的鼠标按下时将焦点设置为 View ,在 View 的 LButtonDown 上调用 SerFocus()。

关于c++ - 子窗口 (CEdit) 失去焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21846993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com