MFC提供的CEdit控件,可以设置其属性为NUM,也就是限定只能输入数字,但是,有个问题就是小数点没法输入了。
在订单系统编写的时候,我想限制价钱和重量的输入只能是数字,整数或者浮点数。因为都是正数,所以我就没有考虑负号的因素,有兴趣的可以加上这一功能。
所以,只能自己编写一个数字的CEdit控件,过程:
1.从标准CEdit控件派生出CNumEdit控件
2.重载CEdit的OnChar函数,实现输入字符的限制,只能是小数点和数字,不过还得考虑响应退格键。其次,还得考虑小数点的输入次数,只能为一个
3.在输入结束后,模仿CEdit的数字规范化的功能,也就是类似0011-->11、11.100 ->11.1 .1100->0.11
重载CEdit的OnKillFocus函数,在编辑框失去焦点的时候进行规范化