今天又学了一招。提供出来给大家 参考一下。
今天修改别人的程序的时候,发现CEdit控件输入内容想要删除老是删除不了。就是Backspace键按下去也没有有。后来看了一下控件的类型,是CEditNum类型,百度了一下,没有这个类,然后跳进程序里面看才看到,这个是自己定义的类,继承自CEdit类。
然后重写了OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 函数。如下:
void CEditNum::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
//判断是否是数字字符
if ( (48<= nChar && nChar <= 57) || nChar == 44)
{
CEdit::OnChar(nChar,nRepCnt,nFlags);
}
}
其中48-57表示是0-9的数字字符的ASCII码。44表示是逗号的。所以我们再加一个nChar==8 ,8是Backspace的ASCII码,所以这样就限定了用户只能输入数字,逗号以及删除键。