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

 

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

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

 

 

Рис.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.

 

 

Рис.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.

 

 

Рис.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.

 

 

Рис.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.

 

 

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

 

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

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

 

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

 

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

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

 

 

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

 

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

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

 

 

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

 

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

 

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

 

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

 

 

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

 

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