我想实现这样的效果:界面上有多个CEdit,判断用户在界面上是否输入,如果有输入,"下一步"按钮变为可用,如果全部没有输入,"下一步"按钮变为不可用
该如何实现了?

解决方案 »

  1.   

    自己写个函数进行判断。界面初始化时调用一下,然后每个CEdit有输入时调用一下
      

  2.   

    响应EN_CHANGE
    有输入就设置一标志
      

  3.   

    如果用户在一个CEdit中开始输入,后来又删除了,如何判断?
    如果界面上有多个CEdit,是否要一个一个判断呢?
      

  4.   

    ON_EN_CHANGE  处理在 加个判断 是不是空
      

  5.   

    定义成员变量数组: bool bEnable[n]; 初始化为 false;
    响应每个Edit的 EN_KILLFOCUS 消息。
         CString strData1;
         txtData1.GetWindowText(strData1);
         if (!strData1.IsEmpty())
              bEnable1 = true;
         for (int i=0;i<n;i++)
         {
              if (bEnable)
              {
                   btnNext.EnableWindow(TRUE);
                   return;
              }
         }
         btnNext.EnableWindow(FALSE);注意:每个 Edit 的 EN_KILLFOCUS 消息都要写入类似代码
      

  6.   

    定义成员变量数组: bool bEnable[n]; 初始化为 false;
    响应每个Edit的 EN_KILLFOCUS 消息。
         CString strData1;
         txtData1.GetWindowText(strData1);
         if (strData1.IsEmpty())
              bEnable1 = false;
         else
              bEnable1 = true;
         for (int i=0;i<n;i++)
         {
              if (bEnable)
              {
                   btnNext.EnableWindow(TRUE);
                   return;
              }
         }
         btnNext.EnableWindow(FALSE);注意:每个 Edit 的 EN_KILLFOCUS 消息都要写入类似代码
      

  7.   

    不好意思,两次都写错了,看这个:定义成员变量数组: bool bEnable[n]; 初始化为 false;
    响应每个Edit的 EN_KILLFOCUS 消息。
         CString strData1;
         txtData1.GetWindowText(strData1);
         if (strData1.IsEmpty())
              bEnable[1] = false;
         else
              bEnable[1] = true;
         for (int i=0;i<n;i++)
         {
              if (bEnable[i])
              {
                   btnNext.EnableWindow(TRUE);
                   return;
              }
         }
         btnNext.EnableWindow(FALSE);注意:每个 Edit 的 EN_KILLFOCUS 消息都要写入类似代码