如何让文本框只能输入数字,而其它符号不能输入呢??谢谢.....

解决方案 »

  1.   

    设置文本框的属性为NUMBER即可。这个可以在文本框的属性界面中可以看到,有个NUMBER的checkbox
      

  2.   

    void CMyEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
    {
    if (!IsCharAlpha((TCHAR)nChar)) 
    {
    CEdit::OnChar(nChar, nRepCnt, nFlags);
    }
    else
    {
    MessageBox("不能输入字母,只能输入数字!","信息提示",MB_OK);
    }
    }
      

  3.   

    happyparrot(为何我买彩票从来不中奖?没钱怎么办阿?) 
     正解! KennyLiu(大星)  的方法好麻烦,而且效果不好。
      

  4.   

    但是我输入的数字是像这样的"12.33",其中带不数点的...如果设置文本框的属性为NUMBER,则小数点就不能输入了.....应该如何改正???谢谢......
      

  5.   

    那就不能选NUMBER属性了
    你给它关联一个float类型的变量吧
    但是这样效果不太好
      

  6.   

    KennyLiu(大星) 同志,按照你的方法操作,在编释时,语句CEdit::OnChar(nChar, nRepCnt, nFlags);
    中的CEdit出错了...为什么呀??
      

  7.   

    //文件名: MyEdit.h : CMyEdit类的头文件
    #pragma once
    class CMyEdit : public CEdit
    {
    DECLARE_DYNAMIC(CMyEdit)
    public:
    CMyEdit();
    virtual ~CMyEdit();
    protected:
    DECLARE_MESSAGE_MAP()
    public:
    afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
    };//文件名: MyEdit.cpp : CMyEdit类的实现文件
    #include "stdafx.h"
    #include "Test.h"
    #include "MyEdit.h"
    IMPLEMENT_DYNAMIC(CMyEdit, CEdit)
    CMyEdit::CMyEdit()
    {
    }
    CMyEdit::~CMyEdit()
    {
    }
    BEGIN_MESSAGE_MAP(CMyEdit, CEdit)
    ON_WM_CHAR()
    END_MESSAGE_MAP()
    void CMyEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
    {
    if (!IsCharAlpha((TCHAR)nChar)) 
    {
    CEdit::OnChar(nChar, nRepCnt, nFlags);
    }
    else
    {
    MessageBox("不能输入字母,只能输入数字!","信息提示",MB_OK);
    }
    }
      

  8.   

    采用子类化(subcalss)技术,你可以在百度上搜索一下,有很多这方面的内容。