在没有子类化的情况下验证CEdit

时间:2009-05-14 06:24:29

标签: c++ mfc cedit

有没有办法在没有子类化的情况下验证CEdit框的内容?

我想在CEdit框中检查无效的文件名字符,并且根本不允许用户输入(不应记录按键,如果粘贴在框中,则无效字符应该不会进入编辑框)..

有没有简单的方法可以做到这一点?

另外,如何创建与此框相关联的变量?如果我添加一个不是控件的变量,该变量是否总是包含编辑控件中的内容?

谢谢..

3 个答案:

答案 0 :(得分:1)

很久以前我创建了this。当然,这已经过时了但想法仍然存在:

alt text

答案 1 :(得分:0)

Per http://msdn.microsoft.com/en-us/library/f7yhsd2b(VS.80).aspx,“如果要处理编辑控件发送给其父级的Windows通知消息(通常是从CDialog派生的类),请将消息映射条目和消息处理程序成员函数添加到每条消息的父类。“和“ON_EN_UPDATE编辑控件即将显示更改的文本。在控件格式化文本之后但在屏幕文本之前发送,以便在必要时可以更改窗口大小。” - 所以,如果没有CEdit的子类,您可以通过父级中的windows message-map / message-handler审核并可能阻止更新。

答案 2 :(得分:0)

在对话框中覆盖PreTranslateMessage。当消息为WM_KEYDOWN并且Set Focus()返回编辑控件的HWND时,请在不喜欢该键时使用该消息。