如何处理EDIT Control控件,对应的变量为m_groupid int类型,输入为非法字符时如何判断

wukonggaoxing 2014-02-16 08:06:13
现在有一个EDIT Control控件ID_EDIT_GROUPID,设其对应的变量为m_groupid int类型,有一个提交按钮,用于处理用户输入在该EDIT Control控件的内容的函数,现在我想在该函数中加一个验证处理。当用户输入的不是数字,而是非法字符,我该怎么来判断?我知道有一个解决方法是把m_groupid 设置成CString类型,这样就可以判断用户输入的内容是数字,是字符,还是字符与数字的混合,然后进行相应的处理。可是现在我不想改变m_groupid的数据类型,请问有其他的解决办法吗?我用调试的结果是如果用户输入的非法字符(非int类型),那么m_groupid就没接收,还是0(初始化时系统自动赋值)。
...全文
131 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wukonggaoxing 2014-02-18
  • 打赏
  • 举报
回复
引用 3 楼 CharlesSimonyi 的回复:
如果你要在点提交按钮时才验证文本框中的内容的话: 方法1:你的文本框右键-添加成员变量,你已经添加了控件变量m_groupid,同时还可以添加Value变量CString类型。UpdateData后检查CString变量的值即可。 方法2:m_groupid.GetWindowText取文本框中的内容,进行检查。 如果你要让文本框自己禁止不符合要求的数据输入,比如只允许输入英文字符,数字、标点禁止输入。 可以写一个类派生于CEdit,处理WM_CHAR消息,拦截不符合要求的输入。然后拖一个文本框控件上去,关联与你新写的这个类。或是直接在主窗口的CWnd::PreTranslateMessage里处理文本框上的WM_CHAR消息,拦截不符合要求的输入。
用了第一种方法解决了,第二种方法有点困惑,呵呵
encoderlee 版主 2014-02-17
  • 打赏
  • 举报
回复
如果你要在点提交按钮时才验证文本框中的内容的话: 方法1:你的文本框右键-添加成员变量,你已经添加了控件变量m_groupid,同时还可以添加Value变量CString类型。UpdateData后检查CString变量的值即可。 方法2:m_groupid.GetWindowText取文本框中的内容,进行检查。 如果你要让文本框自己禁止不符合要求的数据输入,比如只允许输入英文字符,数字、标点禁止输入。 可以写一个类派生于CEdit,处理WM_CHAR消息,拦截不符合要求的输入。然后拖一个文本框控件上去,关联与你新写的这个类。或是直接在主窗口的CWnd::PreTranslateMessage里处理文本框上的WM_CHAR消息,拦截不符合要求的输入。
信阳毛尖 2014-02-17
  • 打赏
  • 举报
回复
引用 4 楼 schlafenhamster 的回复:
“当用户输入(一个字符,所以要检查每一个 即 WM_CHAR)的不是数字,而是非法字符”
你可以从CEdit派生一个类,专门用于输入数字的,方法是在WM_CHAR消息中判断输入的字符的ASC码值是否在0——9之间即可
schlafenhamster 2014-02-17
  • 打赏
  • 举报
回复
“当用户输入(一个字符,所以要检查每一个 即 WM_CHAR)的不是数字,而是非法字符”
wukonggaoxing 2014-02-16
  • 打赏
  • 举报
回复
引用 1 楼 happyparrot 的回复:
控件属性界面中有个选项是 Number,选择后就只能输入数字了
可是我也可以在里面输入诸如“sdfsoi”之类的内容啊,只是好像控件变量不接收
快乐鹦鹉 2014-02-16
  • 打赏
  • 举报
回复
控件属性界面中有个选项是 Number,选择后就只能输入数字了

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧