有没有办法在没有子类化的情况下验证 CEdit 框的内容?
我想检查 CEdit 框中的无效文件名字符,并且根本不允许用户输入它(不应该记录按键,如果粘贴在框中,无效字符不应该进入编辑框)..
有什么简单的方法可以做到这一点?
附带说明一下,如何创建一个与此框相关的变量?如果我添加一个不是控件的变量,该变量是否总是包含编辑控件中的内容?
谢谢..
很久以前我创建了这个。当然,这是非常过时的,但想法仍然存在:
每http://msdn.microsoft.com/en-us/library/f7yhsd2b(VS.80).aspx,“如果您想处理由编辑控件发送到其父级的 Windows 通知消息(通常是从 CDialog 派生的类),为每条消息添加一个消息映射条目和消息处理程序成员函数到父类。" 和“ON_EN_UPDATE 编辑控件即将显示更改的文本。在控件格式化文本之后但在屏幕显示文本之前发送,以便在必要时可以更改窗口大小。” -- 因此,无需子类化 CEdit,您可以通过父级中的 Windows 消息映射/消息处理程序来审查并可能阻止更新。
在对话框中覆盖 PreTranslateMessage。当消息是 WM_KEYDOWN 并且 GetFocus() 返回您的编辑控件的 HWND 时,当您不喜欢该键时吃掉消息。