当然可以了,你给CEdit控件添加一个ON_EN_CHANGE 消息响应函数,在该函数种获得用户输入的内容,然后跟自己要定的范围比较,如果不在范围内就使用户输入无效就可以了,或者用MessageBox弹出提示框,说输入数据超出范围之类的。

解决方案 »

  1.   

    我界面上的控件特别多!是不是要为每个控件都添加响应函数?我的每一个控件都要用户输入数据,每个控件都和我自己定义的类A中的成员数据相对应,在类A中我已经定义了这些成员数据的最大最小值,我想用类A一次性为界面上的控件添加最大和最小值,然后,程序运行时利用DDX检验,行不行?
      

  2.   

    那你继承一下CEdit类,,然后在类里做一下限制,,比如写个传入范围的类函数:
      CMyEdit::SetBound(int min,int max)
      {
       . . .
      }
      

  3.   

    void CInPage1::DoDataExchange(CDataExchange* pDX)
    {
    CPropertyPage::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CPage1)
    DDX_Text(pDX, IDC_EDIT1, m_edit1);
    DDV_MinMaxDouble(pDX, m_edit1, 0., 1.);        ...... DDX_Text(pDX, IDC_EDITn, m_editn);
    DDV_MinMaxDouble(pDX, m_editn, 0., 1.); //}}AFX_DATA_MAP
    }1.我的界面上控件很多(n个),每一个控件都有输入范围2.我建立的类A中的成员变量与这些控件一一对应,并且在类A中已经设定好最大最小值我想将类A中设定好的最大最小值直接传递给ClassWizard自动产生的DoDataExchange(CDataExchange* pDX)不知道,行不行? 给怎么做?
      

  4.   

    //在DoDataExchange中
    DDV_MinMaxDouble(pDX, m_iEdit, m_dMin, m_dMax);   //将范围设成double变量就行了啊,注意初始化你不有设定好的最大最小值吗,需要的时候赋值给m_dMin, m_dMax就行
      

  5.   

    要设置范围的话,直接在类向导里面每个EDIT控件给它定义一个变量,然后随便设置一下其范围内
      

  6.   

    to qingdragon ://在什么时候赋值呢? 你可以先给m_dMin, m_dMax初始化一个值(比如在构造函数中m_dMin=10.0; m_dMax=1000.0;)
    当你认为需要改变范围的时候,改变它们的值,这个是由你来控制啊//你不是问“能不能在程序中设置最大值和最小值?”吗
      

  7.   

    OnChar就可以了,楼主自己写一个不就完了吗