直接在CEdit 编辑框里限制只能输入数字,不用重载onchar什么的,而是直接调用函数来实现。。但是我找了很久在CEDIT里没有找到合适的

解决方案 »

  1.   

    如果想让编辑框控件只支持数字的输入,只需改一下控件的属性就可以了:在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);
    }
      

  2.   

    谢谢的的回答先,我是有一个checkbox,我想要用它来控制输入类型,勾选就只能输入数字。。这样,初学者再练习一些控件的使用
      

  3.   

    谢谢的的回答先,我是有一个checkbox,我想要用它来控制输入类型,勾选就只能输入数字。。这样,初学者再练习一些控件的使用 
      

  4.   

    希望对新手有帮助我找到了答案留在这里
    可以用ModifyStyle这个方法来改变类型
    也可以通过API中的setwindowlong来改变类型