是范围,比如说输入的数值只能在0-24内,不是位数

解决方案 »

  1.   

    给该edit关联一个int变量,这时就可以在ClassWizard里看到可以设定输入范围了。
      

  2.   

    CLassWisard里你映射变量的时候有一个最大最小的限定的
      

  3.   

    OnChangeEdit()
    {
        CString str;
        GetDlgItemText(IDC_EDITMESSAGE,str);
        int i = atoi( str );
        if(i<24)
        { 
          ............
         }
    }
      

  4.   

    这些方法我都知道,用ClassWizard限定的时候即使你规定范围在0-24之间,编辑框还是能输入不在范围内的数的,只不过在确定的时候会弹出提醒框,我的意思是不在范围里的数输都输不进去,就象你规定CSting型的位数是2位的话第3位就输不进去。再请教!
      

  5.   

    可以如此实现
    方法1:重载CEdit类,如CEditLimit24,然后响应OnChar事件,每当用户输入时,首先获取Edit框中的已有内容,如果已有内容和当前输入的数字拼起来会超过24的话就提示用户,且直接返回(不调用CEdit::OnChar())即可。
    方法2:可以在对话框中的PreTranslateMsg方法中截获OnChar事件,再进行如上的判断即可。其实这里面并不牵涉到具体的技术方面的东西,只是一些思想与方法的问题。