Лабораторная работа №3. Элементы управления радиокнопки (Radio Button) и переключатели (Check Box.)
Цель лабораторной работы: Изучить принципы работы элементов управления: радиокнопок (Radio Button) и переключателей (Check Box), позволяющих устанавливать тот или иной режим работы.
Элементы управления Radio Button и Check Box
Элемент Check Box организует кнопку независимого переключателя, с помощью которой пользователь может указать свое решение типа - да/нет. В программе состояние кнопки может быть связано со значением булевской переменной, которая проверяется с помощью оператора if.
Элемент Radio Buttonорганизует группу кнопок - зависимых переключателей. При нажатии одной из кнопок группы все остальные кнопки отключаются. В программе элемент Radio Button связывается с переменной типа int, при этом в программу будет передаваться номер включенной кнопки, который анализируется с помощью оператора switсh или if. Номер первой кнопки равен 0, второй 1 и т.д. Но для этого нужно в тексте программы найти объявлении привязанной к этим кнопкам переменной и задать ее нулевое начальное значение, так как по умолчанию система программирования установит для нее значение –1.
Пример реализации программы
Задание: В поля ввода вводятся 2 целых числа, «Радиокнопка» выбирает действие: или суммирование или разность. «Переключатель» при не активности устанавливает вывод в одну строку при многократном выполнении приложения, а при его активизации результаты выводятся списком. Интерфейс программы приведен на рисунке 1.
Для решения задачи необходимо сделать следующие действия:
1) Создать при помощи MFCAppWizard(exe) новый проект (предварительно выбрав путь и имя – например Lab2) типа Dialog based.
2) Используя панель Controls, нанести на диалоговую панель 3 элемента типа Edit Box, 4 – Static Text, 1 – Button, 2- Radio Button, 1 – Check Box и установить нужные свойства и надписи (для Radio Button с идентификатором IDC_RADIO1 нужно установить свойство Group).
3) При помощи ClassWizard через закладку Member Variables связать поле Edit1 с переменной m_a тип: int, Edit2 - с m_b тип: int, Edit3 - с m_c тип: СString. Для Edit3 установить в закладке свойств Styles: свойство Multiline.
4) При помощи ClassWizard через закладку Member Variables связать идентификатор «переключателя» IDC_CHECK1 с переменной m_s тип: BOOL, а «радиокнопки IDC_RADIO1 с переменной m_r тип: int. Кроме того, в самом начале метода BOOL Clab2Dlg::OnInitDialog() нужно установить значение переменной m_r в 0 т.е. m_r=0;
5) Теперь необходимо активировать кнопку «Выполнить». Для этого: выполнить щелчок правой клавишей мыши в любом месте диалоговой панели и в меню выбрать ClassWizard, выбрать закладку Message Maps, связать идентификатор IDC_Button1 с событием BN_CLICKED (один щелчок на кнопке), и добавить обработчик на данное событие: последовательно Add Function/OK/ Edit Code, среда добавит в конец файла Lab2Dlg.cpp пустой обработчик:
void Clab2Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
}
и как и ранее вместо этой фразы:
добавляем код решение поставленной задачи:
{
int r; CString str;
UpdateData(TRUE);
if (m_r==0) r=m_a+m_b; // если выбрана первая радиокнопка - // «суммирование»
if (m_r==1) r=m_a-m_b; // если выбрана вторая
// радиокнопка –
// «вычитание»
if (m_s)
// если переключатель активен – вывод списком
{
str.Format("c=%d%c%c",r,13,10);
m_c=m_c+str;
}
else
// если переключатель не активен – вывод в одну строку
m_c.Format("c=%d",r);
UpdateData(FALSE);
}
Задание к лабораторной работе
В индивидуальном задании составить программу для вычисления составной функции в соответствии со своим вариантом. Требуется самостоятельно выбрать необходимое количество исходных данных для того, чтобы в программе выполнялись все возможные ветви алгоритма. Перед выводом полученного результата программа должна сообщать о ветви, для которой он получен. В качестве f(x) использовать по выбору: «радиокнопками» функции cos(x), sin(x), tg(x). Программа должна через «переключатели» запоминать или не запоминать min и max найденные значения. Вариант интерфейса приведен на рисунке 2.
Индивидуальные задания
Таблица 1. – Индивидуальные задания
Контрольные вопросы:
1. В чем заключается принцип работы элементов управления - радиокнопок (Radio Button)?
2. В чем заключается принцип работы элементов управления - переключателей (Check Box)?
3. Для чего служит мастер ClassWizard?