Связывание элементов управления

Сейчас свяжем элементы управления с событиями. Мы имеем всего два элемента – это две кнопки, например: Say Hello и Exit.

Воспользуемся еще одним мастером ClassWizard, для этого зайдем в VIEW->ClassWizard, где появится диалоговая панель, как показано на рисунке 10.

Связывание элементов управления - student2.ru

Рис.10. Диалоговая панель мастера ClassWizard

Рассмотрим панель представленную на рисунке 10:

Project – выбор проекта;

ClassName - название класса, элементы которого будут связаны с событиями, необходимо, чтобы было установлено CHelloDlg - это класс, который связан с главным диалоговым окном;

Object IDs - это итендификатор (названия) элементов управления. Первый итендификатор - название самого класса;

Messages - события, которые генерирует программа.

Members function - список функций и соответствующие им события.

Теперь необходимо связать кнопку EXIT с событием BN_CLICKED - которое возникает при нажатие на кнопку. Для этого нужно нажать в Object IDs на IDC_EXIT_BUTTON, справа появится событие, с которым можно связать эту кнопку. Выбираем BN_CLICKED и нажимаем на кнопке Add Function. Этим нажатием определяем связать события с функцией. На рисунке 11 представлена панель выбора названия функции. Оставьте все по умолчанию и нажмите кнопку OK.

Связывание элементов управления - student2.ru

Рис.11. Диалоговая панель связи события с функцией

При нажатии переходим в режим редактирования исходного текста где появится тест для написания программы:

void CHelloDlg::OnExitButton()

{
// TODO: Add your control notification handler code here
///Здесь начинается ваш код///

OnOK();

///Здесь заканчивается ваш код///

}

Ваш код OnOK(); - эта функция будет выполняться при каждом нажатии на кнопку EXIT, и она предназначена для завершения программы. Итак, мы связали кнопку EXIT с событием BN_CLICKED, а его с функцией OnExitButton, которая будет выполняться при каждом нажатии на кнопку EXIT.

Ту же операцию нужно проделать с кнопкой Say Hello и с событием BN_CLICKED. Для этого зайдем в меню VIEW->ClassWizard. Выберем в Object IDs IDC_SAYHELLO_BUTTON. Щелкнем на BN_CLICKED в Messages( этим вы связываете кнопку Say Hello с событием BN_CLICKED). Нажимаем на Add function, этим вы связываете событие BN_CLICKED с функцией. В раскрывшемся окне оставляем все по умолчанию и нажимаем кнопку OK, как показано на рисунке 12.

Связывание элементов управления - student2.ru

Рис.12. Диалоговая панель ClassWizard

Нажимаем на кнопку Edit Code и для редактирования исходного текста в раскрывшемся окне пишем следующий код:

void CHelloDlg::OnSayhelloButton()

{
// TODO: Add your control notification handler code here
///Здесь начинается ваш код///

MessageBox("Say Hello");

///Здесь заканчивается ваш код///

}

Функция MessageBox("Say Hello"); вызывает окно сообщений, в котором написан текст Say Hello, который и является параметром этой функции.

Итак, мы связали кнопки Say Hello и EXIT с событием BN_CLICKED. При нажатии на кнопку Exit программа завершается, а при нажатии на кнопку Say Hello выводится сообщение "Say Hello". Теперь осталось построить и выполнить программу. Для этого нужно зайти в меню Build->Execute Hello.exe. и ваша программа должна выглядеть, как показано на рисунке 14.

Связывание элементов управления - student2.ru

Рис.14. Диалоговая панель вашей программы

Упражнение.

Необходимо вставить еще одну кнопку с названием, например КЕУи c идентификатором IDC_КЕУ_BUTTON, при нажатии на которую компьютер подает сигнал через динамик компьютера.

Контрольные вопросы

1. Как создается программа с помощью мастера проектов (MFC) в программной оболочке Visual C++?

2. Как проектируется диалоговая панель?

3. Как связываются элементы управления с событиями?

4. Как происходит построение и выполнение программы?

Лабораторная работа №5

Создание программы с помощью мастера проектов (MFC) в программной оболочке Visual C++.

Цель работы:

1. Создать проект программы;

2. Визуально спроектировать диалоговую панель;

3. Связать элементы управления;

4. Сохранить и выполнить программу.

Используемое оборудование:

- персональная ЭВМ, совместимая с IBM PC.

Используемое программное обеспечение:

- операционная система Windows;

- интегрированная среда программирования Microsoft Visual C++ 5.0 (ИСП Microsoft Visual C++ 5.0).

Задание по работе

1.1. Загрузить ИСП Microsoft Visual C++ 5.0.

1.2. Изучить команды ИСП Microsoft Visual C++ 5.0.

1.3. Записать протокол работы с интегрированной средой.

Порядок выполнения работы

2.1. Запустить Microsoft Visual C++ 5.0.

2.2. Создать *.cpp файл в рабочем каталоге.

2.3. Выполнить пример и упражнение указанный в работе.

2.4. Закончить работу, запустить программу.

Содержание отчета

3.1. Наименование лабораторной работы.

3.2. Цель работы.

3.3. Теоретическую часть.

3.4. Алгоритм программы.

3.5. Текст программы.

3.6. Вывод.

Описание работы

4.1. Запуск и работа в ИСП Microsoft Visual C++ 5.0.

Запустить Visual C++. Зайти в меню FILE -> NEW..., и выбрать там Project.

Выполните шаги с помощью Visual C++ и мастера настроек MFC AppWizard. MFC. Как показано в лабораторной работе №4.

Создание программы, например Speed.exeона должна выполнять следующие действия.

Программа Speed основана на диалоговом окне, оснащенном меню: File и Help, в середине главного окна, расположено окно редактирования, в котором можно вводить только числа, а, если зайти в меню File->Current, то появится окно сообщения, показывающее число в окне редактирования.

При запуске вашей программы, главное окно должно будет выглядеть так, как показано на рисунке 15.

Связывание элементов управления - student2.ru

Рис.15. Панель вашей программы

Создание меню программы

Для того чтобы создать меню программы зайдите в закладку Resource View, раскройте там пункт Speed Resources, затем щелкните на правую кнопку мыши. В раскрывшемся контекстном меню выберем пункт Insert..., где появиться диалоговая панель, представленная на рисунке 16.

Связывание элементов управления - student2.ru

Рис.16. Диалоговая панель визуального проектирования меню

Выберем здесь Menu и нажмем на кнопку New для создания нового меню. Затем зайдем в пункт Menu, в закладке Resource View, и нажмем на IDR_MENU1, где справа в окошке появиться окно визуального проектирования меню. В левом верхнем углу этого окна появится прямоугольник, который является областью для ввода названия пункта меню.

Отметим его мышкой, а затем правой кнопкой мыши в появившемся контекстном меню нажмем на Properties, как показано на рисунке 17.

Связывание элементов управления - student2.ru

Рис.17. Диалоговая панель проектирования меню

В заголовке пункта меню в Caption - &File, первый значок &, подчеркивает первую букву F слова File, это означает, что при нажатии на клавиши ALT+F всплывет пункт меню File. Нажмем Enter, в прямоугольнике появиться File, а ниже откроется еще одно окошко с прямоугольником, где мы будем задавать названия пунктов меню File.

С помощью мышки выделим этот прямоугольник, раскроем контекстное меню Properties, и в раскрывшемся окне зададим Captions название пункта меню &Сurrent Speed и нажмем Enter, как показано на рисунке 18.

Связывание элементов управления - student2.ru

Рис.18. Диалоговая панель проектирования меню

Теперь создадим меню Help как показано на рисунке 19:

Связывание элементов управления - student2.ru

Рис.19. Диалоговая панель проектирования Help

Нажмем на пустой прямоугольнике в главной строчке и зададим ему имя Help, в нижнем прямоугольнике напишем About, все повторяется, как написано выше. Когда меню визуально спроектировано, его надо связать с диалоговой панелью, для этого нужно добавить его в класс диалоговой панели. Для этого выберем, мастер ClassWizard в меню View, как показано на рисунке 20.

Связывание элементов управления - student2.ru

Рис.20. Диалоговая панель добавления класса

Выберем здесь Select an existing class(выбрать уже существующий класс), это значит, что мы хотим включить меню уже в существующий класс, нажмите на кнопку OK. Далее раскроется еще одно окно Select Class (выбрать класс), выберем класс CSpeedDlg, отвечающий за диалоговую панель и нажмем на кнопку Select.

Наши рекомендации