一个对话框,有一文本输入框,我想实现,在输入后,确定,先判断输入的值,如果符合条件,就响应ok,不符合,就不响应,怎么做

解决方案 »

  1.   

    VOID MyDlg::OnOK()
    {
       if(CheckVal() == FALSE)
          return;        //不符合,就不响应  CDialog::OnOK();
    }
      

  2.   

    自己加, 这个函数吗?
    在 class wizard 中好像没找到onok 的东西
      

  3.   

    对话框上的默认按钮“确定”,双击它就行了。如果没有了,加一个按钮,ID设为IDOK,双击添加响应函数
      

  4.   

    我试试,问题是这个CheckVal,也是从当前这个Dialog的文本框控件中得到的
      

  5.   

    一个更符合lz要求的办法是对话框创建时,初始化OnInitDialog时,将ok按钮无效化:然后处理edit控件的EN_CHANGE通知,此时读取edit控件内容,如果符合要求就将Ok按钮enable,否则不处理(保持无效)
      

  6.   

    响应EN_CHANGE消息,在里面判断
      

  7.   

    to WingForce
    欲穷千里目,更上一层楼
    LZ连楼都没找到,怎么更上,5楼说笑了
      

  8.   

    真是不好意思,是我对updatedata()了解的不深造成的。
    在OnBntOk()中,没有加updatedata();
    导致 文本框控件的值改变后,在程序中的变量,也就是用来判断是否响应的变量取不到值。
    我还以为,在onBntOk()中,必须先重载Cdialog::OnOk()才行呢。实际不是这样的。
    附:void CBDlg::OnBtnok()
    {CADlg aDlg;
    updataData();
    if(m_checkVal>某值)
       {aDlg.m_val=m_checkVal
        ....
       CDialog::OnOk();
       }
    else
       {....
       aDlg.m_val=...;}
    }
    最后谢谢各位,就是分少点