1
回答
MFC中EDIT如何校验输入是时间类型、整型和字符串呢?
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   
各位大神,请指教,小弟刚刚接触c++,甚不会,往各位大神不吝赐教,谢谢!
MFC
举报
虾米籽
发帖于5年前 1回/1K+阅
共有1个答案 最后回答: 5年前

个人理解:对于editbox或者说对于系统来说,你输入的无论时间,整型,字符串都是字符串,如果你需要判断的话,那么你首先要制定输入规则,然后通过时间,整型,字符串的特征进行区分,例如整型的字符都在0-9之间,时间你可以要求输入:来隔开时分秒,字符串则任意,但其实这里面有一个问题就是整型对于editbox来说既可能是字符串,也可以作为数字;这种情况就要看你前面制定的规则。

在MFC中可以为editbox制定关联变量,具体的做法在“view->classwizard->Member variable”选中需要关联的editbox控件,然后在右边选择add variable...,你就可以选择相应的数据类型,就关联起来了,后续你在该editbox中输入的时候,控件自己会进行判断。

MFC本身也只能设计到限定输入何种数据类型,也不好实现你说的动态判断输入的数据类型,因为实际的规则需要你自己来制定,到底什么数据算时间,什么数据算数字,什么算字符串。

--- 共有 2 条评论 ---
d-dream回复 @虾米籽 : 你可以自己写个判断,把数据进行一些比对,如果只进行数字和时间区分,你可以要求输入的时间格式是什么样的,例如15:33:15类似这样,然后判断输入数据是否符合这种规则(你可以参考一下这种思路,毕竟字符只有0-9和":",可以判断其中是否存在其他字符,如果存在直接报错,然后在判断其是否存在:,如果存在进行时间格式比较,如果不符合的话,那么就提示重新输入什么规则的数据。 5年前 回复
虾米籽我现在用制定关联实现+UpdateData()处理,貌似可以实现整型校验,但是时间类型还是没法做校验,隔壁o(︶︿︶)o 5年前 回复
顶部