基于对话框
一个按纽,点一下,做一半,再点一下,再做另一半,这前一半就不做了
第三次再点时又重复上面的
例如:
void CTestDlg::OnButton() 
{ m_inputButton.EnableWindow(TRUE);
m_inputEdit.EnableWindow(TRUE);
m_inputStatic.Format("请在此输入:)");
         //当第一次点的时候,运行到这,去做其它的事(得到输入)
         //第二次点时,前面的不做了,将得到输入的数字(在一个成员变量里)
         //来判断下面的。这样是一次操作完成
          //以后再想做这个操作又如上面那样, if(a)
m_list.InsertString(0,"成功!");
else
m_list.InsertString(0,"失败!");}我的思路是,声明一个什么东东。来做判断条件
不知道大家有没有更好的想法
我不懂呀。还请大家多指教!!!!!!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    我就是这样写的
    if(iFlag == -100 )//定义的值

       //do 
       iFlag = 100;
       return;

    if (iFlag == 100 )
    {
      //do
       iFlag = -100
    }呵呵
      

  2.   

    用静态变量或者全局变量都行,静态变量好一点,他可以避免用全局这个麻烦的东东:void CTestDlg::OnButton() 
    {
      cstatic int iFlag;
      if ( iFlag == 0 )
      {
          ......//运行第一部分
          iFlag = 1;
      }
      else
      {
         .......// 运行第二部分
         iFlag = 0;
      }
    }
      

  3.   

    int n=1;void cxxxdlg:onbutton()
    {
    n++
    if(n%2==0)
    ...........
    if(n%2==1)
    ..........
    }就这么简单
      

  4.   

    设置全局或静态变量进行记忆即可,同意madhappy的意见
      

  5.   

    同意jszj(老板说mis部不是赚钱的部门)
      

  6.   

    我已经按jszj(老板说mis部不是赚钱的部门) 方法做了还是避免用全局的
    呵呵
    谢谢大家
      

  7.   

    还有一个小问题呵
    我的editbox,是一个多用,我声明已是CString m_editBox
    但我有时想控制输入的只是数字,长度有时为2,有时为20
    这些要怎么做???????????????
    -----------------------------------------------------------
    我会给给此贴加分的
    谢谢大家
      

  8.   

    重载EN_CHANGE,对每次输入的字符判断是否为数字,是则显示,不是则不显示,如果达到你设定的长度,就不再接受输入
    void CMyDlg::OnChangeEdit1() 
    {
      UpdateData(TRUE);
      for(int i = 0; i < m_editBox.GetLength(); i++)
      {
         if(m_editBox[i] < '0' || m_editBox[i] > '9') break;
       }
       m_editBox = m_editBox.Left(i);
       if(m_editBox.GetLength() > 2) m_editBox = m_editBox.Left(2); //限定最大2位   UpdateData(FALSE);}
      

  9.   

    多谢 ymbymb(毛病大哥) 
      

  10.   

    void CTestDlg::OnButton() 
    {
      static BOOL iFlag = TRUE;
      if ( iFlag )
      {
          ......//运行第一部分
      }
      else
      {
         .......// 运行第二部分
      }
      iFlag != iFlag;
    }
      

  11.   

    写错了 static BOOL iFlag = TRUE;
    if ( iFlag)
    {
    AfxMessageBox("第一部分");
    }
    else
    {
    AfxMessageBox("第二部分");
    }
    iFlag = !iFlag;
      

  12.   

    但我有时想控制输入的只是数字,长度有时为2,有时为20
    ------------------------------
    ((CEdit *)GetDlgItem(IDC_EDIT1))->SetLimitText(2);
    ((CEdit *)GetDlgItem(IDC_EDIT1))->SetLimitText(20);
    ((CEdit *)GetDlgItem(IDC_EDIT1))->SetLimitText(20000);想多长就多长