C++ 循环复选框或编辑框

C++ 循环复选框或编辑框,c++,visual-studio-2010,visual-c++,checkbox,mfc,C++,Visual Studio 2010,Visual C++,Checkbox,Mfc,我正在使用Visual Studio 2010,表单上有10个复选框,并通过命名m_CheckBox1、m_CheckBox2、m_CheckBox3……为每个复选框创建了变量。。。。m_CheckBox10和编辑框(m_EditBox1…依此类推) 我想检查是否在循环中选中了复选框,如果编辑框值不是所需的,则会显示消息框错误。如果该值是确定的,则移动到下一个复选框和编辑框。我怎样才能移动到下一个复选框 for (i=1;i < 11 ;i++) {

我正在使用Visual Studio 2010,表单上有10个复选框,并通过命名m_CheckBox1、m_CheckBox2、m_CheckBox3……为每个复选框创建了变量。。。。m_CheckBox10和编辑框(m_EditBox1…依此类推)

我想检查是否在循环中选中了复选框,如果编辑框值不是所需的,则会显示消息框错误。如果该值是确定的,则移动到下一个复选框和编辑框。我怎样才能移动到下一个复选框

    for (i=1;i < 11 ;i++)
         {
           is_checked = m_Checkboxi.GetCheck();
            if is_checked==1
              {do sth. with m_EditBox(i)}
            else
             do sth.
        }
(i=1;i<11;i++)的

{
is_checked=m_Checkboxi.GetCheck();
如果选中,则=1
{用m_EditBox(i)做某事}
其他的
做某事。
}

谢谢

去掉这10个变量,放入一个数组:

CButton m_复选框[10]

如果需要,还可以编辑resource.h文件,使10个ID连续。要在循环中使用阵列,必须替换DoDataExchange中的DDX_控制调用:

CDialog::DoDataExchange(pDX);
for (int i = 0; i < 10; i++)
    DDX_Control(pDX, IDC_CHECK1 + i, m_CheckBox[i]);
CDialog::DoDataExchange(pDX);
对于(int i=0;i<10;i++)
DDX_控制(pDX、IDC_检查1+i、m_检查框[i]);

不要为每个复选框存储变量。相反,由于复选框在逻辑上形成了一个选项数组,因此也将它们存储在一个数组中。这将是一个远离使用向导并理解生成代码的好时机。或者,如果您无法更改资源id,请按顺序声明一个包含资源id的静态INT数组。ScottMcP-MVP:如果资源id不连续,那么它将如何工作:(john_e的注释解释了如果id不连续,它将如何工作。