如何在编辑框控件里实时地检查输入字符?目的是检查格式错误,如有错误立即报错
是否用到WM_NOTIFY消息?如需要的话,希望能以一段代码稍作讲解,在此拜谢!

解决方案 »

  1.   

    都没输入完怎么检查格式错误呢?用KillFocus还差不多,如果只是数字的话,可以设置编辑框的格式地。
      

  2.   

    比如我想输入浮点数,允许输入数字和小数点,而不是只允许数字,而且我不想用KillFocus,想及时报错
      

  3.   

    重载CEdit类(CEditEx),响应WM_CHAR
    void CEditEx::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 
    {
    // TODO: Add your message handler code here and/or call default
    if((nChar>='0'&&nChar<='9')||nChar=='.'||nChar==VK_DELETE||nChar==VK_BACK)
        {
            if(nChar=='.')
            {
    int   nStart,nEnd; 
    GetSel(nStart,nEnd);
    if(nStart==0)
    {
    AfxMessageBox("小数点不能在第一位");
    return;
    }            CString str;
                GetWindowText(str);
    if(str.Find('.')>=0)
    {
    if(!(str.Find('.')>=nStart&&str.Find('.')<nEnd))
    {
    AfxMessageBox("不能输入第二个小数点");
    return;
    }
    }
    }
        }
        else
    {
            AfxMessageBox("输入有误");
    return;
    } CEdit::OnChar(nChar, nRepCnt, nFlags);
    }