比如我要在编辑框中输入实数,3%等等。
不允许用户输入别的符号。
最好不用消息提示

解决方案 »

  1.   

    在类向导中给IDC_EDIT重载消息EN_CHANGE在响应函数中自己给用户所输入的值进行规则判断
      

  2.   

    我看了MSDN的帮助,不能理解,
    #define PES_NUMBERS         0x0001
    #define PES_LETTERS         0x0002
    #define PES_OTHERCHARS      0x0004
    #define PES_ALL             0xFFFF
    void CParsedEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
    {
    WORD type; if (nChar < 0x20)
    type = PES_ALL;                         // always allow control chars
    else if (IsCharAlphaNumeric((TCHAR)nChar) && !IsCharAlpha((TCHAR)nChar))
    type = PES_NUMBERS;
    else if (IsCharAlpha((TCHAR)nChar))
    type = PES_LETTERS;
    else
    type = PES_OTHERCHARS; if (m_wParseStyle & type)
    {
    CEdit::OnChar(nChar, nRepCnt, nFlags);  // permitted
    }
    else
    {
    // illegal character - inform parent
    OnBadInput();
    }
    }
    他那个 0x20是什么意思,如果是ASCII码,那就是32,应该大于32才对呀,
    那个宏定义我也看不懂,0x0001,0x0002,0x0004,0xFFFF究竟代表什么
    我要做的是编辑框显示实数,小数5位吧,如0.00000,可以往里输任何值,
    然后编辑框显示百分比,可以往里输百分数,
    能不能说具体些,最好能有代码帮我理解。
      

  3.   

    重载CEdit
    void CHexEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 
    {
    CString m_strHex="0987654321abcdefABCDEF\b"; //我这里实现得是只可以输入16进制得数,你根据需要改一下 if(m_strHex.Find(nChar)==-1) //如果不是你需要得就返回
    return; CEdit::OnChar(nChar, nRepCnt, nFlags);
    }
      

  4.   

    我没用你们所说的那么高深的技术,太麻烦了。
    我是在编辑框里定义的double变量,输字符串,他自己会弹出消息框。