Я использую 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.
}
Спасибо
Избавьтесь от этих 10 переменных и поместите в массив:
CButton m_CheckBox [10];
Также отредактируйте файл resource.h при необходимости, чтобы сделать 10 идентификаторов подряд. Вам придется заменить вызовы DDX_Control в DoDataExchange, чтобы использовать массив в цикле:
CDialog::DoDataExchange(pDX);
for (int i = 0; i < 10; i++)
DDX_Control(pDX, IDC_CHECK1 + i, m_CheckBox[i]);
Других решений пока нет …