vc 编辑框 限制输入数字

请问在VC的编辑框中如何限制只输入数字,如float型,而不能输入字母等字符?是不是得经过消息判断?如何实现?还是有简单的设置?关联一变量(如valuedouble)可以... 请问在VC的编辑框中如何限制只输入数字,如float型,而不能输入字母等字符?
是不是得经过消息判断?如何实现?
还是有简单的设置?
关联一变量(如value double)可以起到限制作用,
但并不理想,仍然可以输入字母,只不过会弹出提示要求重新输入数字.
这样的界面并不理想.
是不是可以使得字母就直接输入不到编辑框中呢?
展开
 我来答
魔高丈
2009-08-17 · TA获得超过9506个赞
知道大有可为答主
回答量:2066
采纳率:0%
帮助的人:3472万
展开全部
如果想让编辑框控件只支持数字的输入,只需改一下控件的属性就可以了:在VC6.0中,右键点击控件在弹出的菜单上点击“Properties”(属性),在弹出的属性对话框中,点击Style(样式)页面,将右下角的Number(数字)选中即可。

但是这样做后,你会发现,小数点也没法输入了,也就是说只能输入整数了。那么还想输入小数点,或者还想限制其他字符的输入怎么办呢?

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

例如,只能输入小数:
void CXXXEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
if(::isdigit(nChar)||(nChar=='.'))
CEdit::OnChar(nChar, nRepCnt, nFlags);
}
lz3272
2009-08-17 · TA获得超过333个赞
知道小有建树答主
回答量:258
采纳率:0%
帮助的人:354万
展开全部

点了OK就可以设定最大值和最小值了

不明白Hi我一下 

然后在添加的函数中加入代码

 CString strTemp;

 CEdit* edit1 = ((CEdit*)(GetDlgItem(IDC_EDIT1)));

 edit1->GetWindowText(strTemp);

 int len = strTemp.GetLength();

 for (int i = 0; i < len; i ++)

 {

  if (strTemp.GetAt(i) < '0' || strTemp.GetAt(i) > '9')

  {

   if (strTemp.GetAt(i)!= '.')

   {

    strTemp = strTemp.Left(i);//MessageBox("cuo");

    edit1->SetWindowText(strTemp);

    return;

   }

  }

 }

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
80676535
2009-08-17 · TA获得超过477个赞
知道小有建树答主
回答量:1316
采纳率:0%
帮助的人:878万
展开全部
想只要数字。。。
只要在编辑框的属性中,选择“数字”,英文版本就自己翻译了

其它复杂的就参考别人的吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xdg1981
2009-08-16 · TA获得超过933个赞
知道小有建树答主
回答量:527
采纳率:0%
帮助的人:0
展开全部
编辑框关联一变量,在关联变量时,对话框下面有设置限制字符长度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-08-16
展开全部
将编辑框关联一变量就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式