А теперь мы спроектируем диалоговую панель.
Сейчас мы визуально спроектируем диалоговую панель. Для этого вначале выберите закладку "ResourseView" и раскройте пункт HelloResource, как показано на рис. 6.
Рис.6.
Здесь вы видите две записи:
1) IDD_ABOUTBOX
2) IDD_HELLO_DIALOG
1) - это название диалоговой панели ABOUT, а 2)- название главной диалоговой панели. Выполните щелчок по второй строчке(2) и справа появится, диалоговая панель. В этом режиме можно ее редактировать (см. рис. 7).
Рис.7.
Удалите из диалоговой панели текст: "TODO:.." и две кнопки, для этого щелкните на эти элементы и нажмите DEL. Теперь у вас чистая панель и вы можете спроектировать ее на свой вкус.
Cправа от диалоговой панели находятся элементы управления(если вы их не видите, то зайдите в TOOLS->CUSTOMIZE, в закладке TOOLBARS, CONTROLS - поставьте флажок). Вы можете редактировать панель в полном экране, для этого зайдите в VIEW->FULLSCREEN.
Сейчас выберите в элементах управления Button,
и щелкните мышкой на диалоговую панель, которая должна выглядет, как показано на рис. 8 .
Рис.7.
Теперь выделите кнопку мышкой, для этого нажмите на нее и отбуксируйте маркеры, чтобы кнопка стала такой же, как на рис 6. После этого опять выделите кнопку левым щелчком мыши, затем нажмите правую кнопку и в расрывшемся меню выбирете Properties(настройки).
Выведется такая диалоговая панель (рис 7).
Вместо текста IDC_BUTTON1 введите IDC_SAYHELLO_BUTTON, зададим идентификатор, по которому VC будет распознавать элемент. В строке Captions(надпись), введите название кнопки SayHello.
Вставьте теперь еще одну кнопку такого же размера, cID - IDC_EXIT_BUTTON и Captions(надпись) Exit. Диалоговая панель должна выглядеть, как показано на рис. 1.8
Все свойства диалогового окна будут задавать таблицей, где будут указываться свойства элементов диалога. Свяжем элементы управления с событиями. Два элемента - это две кнопки: SayHello и Exit. Теперь воспользуемся еще одним мастером ClassWizard, он сильно облегчит нам работу. Зайдите в VIEW->ClassWizard, появится такая диалоговая панель
Рис.1.8.
Рассмотрим эту панель.
1) Project- здесь вы выбираете свой проект.
2) ClassName - название класса, элементы которого вы будете связывать с событиями, проверьте, чтобы там было установлено CHelloDlg - это класс, который связан с главным диалоговым окном.
3) ObjectIDs - это идентификаторы(названия) элементов управления, в нашем случае это две кнопки. Первый идентификатор - это название самого класса, оно туда включено, так как с ним связаны многие события( это такие значения, которые возвращаются Windows, при совершении какого-нибудь действия).
4) Messages - а это как раз те самые события, которые генерирует программа. К примеру, если вы нажали на кнопку, то генерируется событие BN_CLICKED, а если два раза - то BN_DOUBLECLICKED.
5) Membersfunction - это список функций, которые вы включили, и соответствующие им события.
Теперь свяжем кнопку EXIT с событием BN_CLICKED - оно возникает при нажатие на кнопку. Для этого щелкнем в ObjectIDs на IDC_EXIT_BUTTON, справа появится события, с которыми можно связать эту кнопку. Выбираем там BN_CLICKED. И щелкаем на кнопке AddFunction , которая находится справа. Этим нажатием вы говорите VisualC++, что вам необходимо связать это событие с функцией. Выведется такая диалоговая панель, где вам предложат выбрать название функции. Оставьте все по умолчанию и нажмите кнопку OK.
В Membersfunction появилась запись о том, что связали кнопку (c итендификатором IDC_EXIT_BUTTON) с функцией OnExitButton. Теперь щелкаем по кнопке EditCode, которая находится ниже кнопки AddFucnction. При нажатии на эту кнопку мы переходим в режим редактирования исходного текста. В окошке появится тест:
void CHelloDlg::OnExitButton()
{
// TODO: Add your control notification handler code here
}
Коментарий // TODO: Add your control notification handler code here говорит, что после него можно ставлять свой код.
Начало вашего кода будет обозначаться
///Здесь начинается ваш код///
А конец вашего кода -
///Здесь заканчивается ваш код///
Теперь введем код, для этого вам надо переписать его
void CHelloDlg::OnExitButton()
{
// TODO: Add your control notification handler code here
///Здесь начинается ваш код///
OnOK();
///Здесь заканчивается ваш код///
}
Напишем OnOK();, эта функция будет выполняться при каждом нажатии на кнопку EXIT, и она предназначена для завершения программы. Проверьте, чтобы в написании OnOK, OK было написано с большой буквы, иначе, при компиляции программы, VisualC++ сообщит вам об ошибке, так символы верхнего и нижнего регистра в VC имеют распознаются по-разному.
Итак вы связали кнопку EXIT с событием BN_CLICKED, а его с функцией OnExitButton, которая будет выполняться при каждом нажатии на кнопку EXIT.
Теперь свяжем кнопку SayHello с событием BN_CLICKED. Для этого зайдем в меню VIEW->ClassWizard.
Выберем в Object IDs IDC_SAYHELLO_BUTTON.
Щелкнемна BN_CLICKED в Messages (этимсвязываетекнопку Say Hello ссобытием BN_CLICKED).
Нажимаем на Addfunction, этим связываете событие BN_CLICKED с функцией.
В раскрывшемся окне оставляем все по умолчанию и нажимаем кнопку OK.
Затем нажимаем на кнопку EditCode, для редактирование исходного текста.
И в раскрывшемся окне пишем следующий код:
void CHelloDlg::OnSayhelloButton()
{
// TODO: Add your control notification handler code here
///Здесь начинается ваш код///
MessageBox("SayHello");
///Здесь заканчивается ваш код///
}
Функция MessageBox("SayHello"); вызывает окно сообщений, в котором написан текст SayHello, который и является параметром этой функции.
Итак, связали кнопки SayHello и EXIT с событием BN_CLICKED. При нажатии на кнопку Exit программа завершается, а при нажатии на кнопку SayHello выводится сообщение "SayHello".
Теперь осталось построить и выполнить программу. Нажимаем Далее...
Компиляция и запуск программы
Для того, чтобы выполнить программу надо ее вначале сохранить. Зайдите в меню File и там нажмите на SaveAll. Затем надо ее построить (скомпилировать).
Зайдем в меню Build->BuildHello.exe, начнется построение программы. Если компилятор не выдал сообщение об ошибке, которые можно посмотреть в появившемся внизу окошке, то можно смело запускать программу.
Теперь осталось только выполнить программу, для этого зайдите в меню Build->ExecuteHello.exe
Ваша программа должна будет выглядеть так:
А окно сообщений при нажатии на кнопку SayHello:
Проект программы создан, визуально спроектирована диалоговая панель, элементы управления связаны с событиями с помощью мастера ClassWizard, программа выполняется.
Индивидуальные задания.
Ниже приведено 15 вариантов задач. По указанию преподавателя выберите свое индивидуальное задание. Уточните условие задания, количество, наименование, типы исходных данных. В соответствии с этим установите количество окон, тексты заголовков на форме, размеры шрифтов, а также типы переменных и функции преобразования при вводе и выводе результатов.
С помощью инспектора объектов измените цвет формы, шрифт выводимых символов.
Задание: составить программу вычисления арифметического выражения по вариантам:
№варианта | Программируемая формула | A | B | C | D | Результат |
1 | 105 | 5 | 2 | 2.5 | 1.95862E+2 | |
2 | 104 | 10 | 0.1 | -3 | -1.48774E+1 | |
3 | 104 | 10 | 0.2 | 3 | 1.79615E+1 | |
4 | 10-2 | -1.5 | 4.1 | -3 | 1.61778E-2 | |
5 | 101 | -1.7 | 3.9 | -3 | -3.83304E+0 | |
6 | 103 | 3.5 | 4.1 | -3 | 1.06442E+1 | |
7 | 101 | -0.5 | 1.1 | -1 | 9.65643E-1 | |
8 | 102 | -20.5 | 5.1 | -1.5 | 1.36556E+3 | |
9 | 10-1 | 2.5 | 5.1 | -1.5 | -5.55037E-1 | |
10 | 10-1 | 1.2 | 5.1 | 2.05 | 1.42678E+3 | |
11 | 103 | 12 | 7.21 | - | 2.79759E-1 | |
12 | 10 | 1.3 | 0.1 | -.05 | 4.66048E+0 | |
13 | 10-2 | 1.39 | 3.1 | 0.55 | 1.39860E-4 | |
14 | 10-3 | 21.39 | 23.1 | -0.12 | -4.73017E+0 | |
15 | 10-1 | 2.1 | 0.1 | -3.12 | -2.24257E+0 |