在VC中如何限制输入

来源:百度知道 编辑:UC知道 时间:2024/06/08 14:28:51
就是在输入数据时除了数字其他输入都无法显示,即是按不了似的....
具体怎么在代码实现? 更新编辑框的事件又是什么?不好意思,我是菜鸟,望各位大虾指教~~

很简单,就像lixin_shirt说的一样。
但TA没细说。
你可以这样:
在处理EN_CHANGE消息的函数中这样写
CString str,isNum;
GetDlgItemText(IDC_EDIT1,str);
isNum=str.Right(1);
if(isNum=="") //"非法"
{
SetDlgItemText(IDC_EDIT1,str.Left(str.GetLenght()-1));
return;
}
isNum.Format("%d",atoi(isNum));
if(isNum=="") //"非法"
{
SetDlgItemText(IDC_EDIT1,str.Left(str.GetLenght()-1));
// return;//如果下面还有代码的话,就加上这句
}
当然你也可以判断最后一个字母的ASCII吗是否介于0-9的ASCII之间
视具体情况,很多问题都有好多种解决方法。
试着多想几种方案,在挑选做好的那一个。
这样做省时有省力,对养脑用帮助。
这些是我工作中的体会。
希望能帮到你。

如果想让EDIT控件只支持数字的输入,只需改一下控件的属性就可以了:在VC6.0中,右键点击控件在弹出的菜单上点击“Properties”(属性),在弹出的属性对话框中,点击Style(样式)页面,将右下角的Number(数字)选中即可。

如果还想限制其他字符的输入就要麻烦点了:
需要从CEdit派生一个新的类,重载WM_CHAR消息,在OnChar()中添加对输入字符的判断,不是你想要的字符直接返回就可以了

例如,输入一个十六进制数据:
void CXXXEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// T