Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб 5.doc
Скачиваний:
3
Добавлен:
08.05.2019
Размер:
462.34 Кб
Скачать

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

Программирование для Windows. Использование MFC.

Создание диалоговых панелей.

Программирование диалоговых элементов Windows.

Цель.

  • Освоить приемы работы с AppWizard;

  • Получить знания приемов работы с редактором ресурсов;

  • Освоить приемы работы с ClassWizard;

  • Ознакомиться с механизмом обработки событий от диалоговых элементов, элементов управления;

  • Усвоить разницу между модальными и немодальными диалогами;

  • Освоить принципы обмена данными между диалоговыми элементами и переменными.

Основные теоретические сведения.

Диалоговая панель

Удобным средством организации взаимодействия пользователя и приложения являются диалоговые панели. Многие приложения могут успешно работать и без главного окна, взаимодействуя с пользователем только через диалоговые окна. Диалоговые панели (блоки диалога) - специальные окна, поддерживающие гибкие средства, через которые пользователь может взаимодействовать с программой. Как правило, они содержат дочерние окна, называемые элементами управления.

Диалоговые панели бывают двух типов - модальные и немодальные.

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

Немодальные диалоговые панели не блокируют работу остальных окон приложения. Поэтому, открыв такую панель, можно продолжать работать с приложением - использовать меню, открывать другие дочерние окна и диалоговые панели.

И модальные и немодальные диалоговые панели обслуживаются одним (общим) классом CDialog,

Библиотека классов MFC содержит класс CDialog, наследованный от базового класса CWnd, специально предназначенный для управления диалоговыми панелями, как модальными, так и немодальными.

Для создания и отображения диалоговой панели необходимо произвести следующие действия.

В первую очередь, необходимо добавить в ресурсы приложения шаблон новой диалоговой панели и при помощи редактора ресурсов изменить его для конкретных целей.

Следующим этапом создается класс для управления диалоговой панелью. Этот класс наследуется непосредственно от базового класса CDialog.

Каждая диалоговая панель обычно содержит несколько органов управления. Работая с диалоговой панелью, пользователь взаимодействует с этими органами управления - нажимает кнопки, вводит текст, выбирает элементы списков. В результате генерируются соответствующие сообщения, которые должны быть обработаны классом диалоговой панели. Поэтому необходимо создать обработчики сообщений для диалоговой процедуры.

Так как класс диалоговой панели обрабатывает сообщения, то содержит таблицу сообщений и соответствующие методы-обработчики сообщений.

Чтобы создать модальную диалоговую панель, сначала необходимо создать объект определенного в приложении класса диалоговой панели, а затем вызвать метод DoModal, определенный в классе CDialog.

Процедура создания немодальной диалоговой панели несколько другая. Для этого используется метод Create класса CDialog.

Приложение с модальной диалоговой панелью

Рассмотрим приложение, имеющее пункт меню, при выборе которого на экране появляется модальная диалоговая панель. Диалоговая панель содержит 3 кнопки, статическое текстовое поле и поле редактирования. Шаблон диалоговой панели, как и меню приложения создается с помощью редактора ресурсов.

Создание диалоговой панели с помощью редактора ресурсов.

Для создания диалоговой панели с помощью редактора ресурсов выберете вкладку ResourceView в Workspace. Затем в появившемся дереве найдите поддерево Dialog. По правой кнопке мыши выберете строку Insert Dialog. Вы увидите стандартный диалог с двумя кнопками OK и Cancel. Вы можете добавлять новые эламенты в диалоговую панель, используя панель инструментов Controls. Для добавления кнопки щелкните по изображению кнопки в панели Controls. Затем поместите курсор мыши в то место диалоговой панели, где вы хотите иметь кнопку, и щелкните мышью. В окне дталога появится изображение кнопки. По правой кнопке мыши вызовите диалог Properties, задайте текст на кнопке и идентификатор элемента - этой кнопки. По этому идентификатору можно будет добавить обработчик сообщения в какой либо класс. Для того, чтобы в диалоге можно было применять русские буквы, в WorkSpace на появившемся идентификаторе диалога щелкните мышью и задайте в свойствах диалога русский язык. Для изменеия идентификатора диалоговой панели в этом же окне свойств измените поле ID.