问题描述
我想要修改 MFCedit 框的事件,即当我尝试编写或删除任何字母时。
我收到关于杀死焦点的事件,但这不是必需的。
解决方法
要添加到现有答案中,可以通过为控件添加 EN_CHANGE
事件处理程序来完成。这是在 Visual Studio 中使用 IDE 的简单任务。
对此有几种方法。
方法一:右击EDIT控件,添加事件处理程序:
单击上下文菜单上的添加事件处理程序...,然后找到要添加的处理程序:
确保选择了对话框类并选择了 EN_CHANGE
消息类型,然后单击确定将样板代码添加到您的类中。现在你可以做你需要做的事情了。
方法 2:使用属性面板
确保选择了控件并且属性面板在屏幕上可见。
- 单击控件事件(闪电图标),您将看到 EDIT 控件的事件列表。
- 找到
EN_CHANGE
并点击下拉箭头。
您会在那里看到一个可供选择的项目,该项目将为您添加事件处理程序。
方法 3:使用类向导
右键单击DIALOG 资源(不是 EDIT 控件)并选择类向导...
然后您可以使用类向导添加控件:
要做到这一点:
- 选择左侧列表中的 EDIT 控件 ID。
- 选择
EN_CHANGE
事件处理程序。 - 点击添加处理程序...按钮。
如您所见,有多种方法可以添加 EN_CHANGE
事件处理程序。
对编辑控件内容的更改通过 EN_CHANGE
通知报告给客户端。 CEdit
documentation 解释了如何将类成员连接到通知回调。在这种情况下,您需要在消息映射中添加一个 ON_EN_CHANGE
条目。