Программирование для Windows. Использование MFC. Создание диалоговых панелей. Программирование диалоговых элементов Windows

Страницы работы

Фрагмент текста работы

Лабораторная работа №3.

Программирование для Windows. Использование MFC. Создание диалоговых панелей. Программирование диалоговых элементов Windows.

1  Цель работы:

1  Углубить знания приемов работы с AppWizard;

2  Углубить знания приемов работы с редактором ресурсов;

3  Углубить знания приемов работы с ClassWizard;

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

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

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

2  Теоретические сведения.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рассмотрим исходные тексты приложения dlg1.exe. В это приложении определяются три класса: CDlg1App, CMainWindow и CMyDialog. После запуска приложения на экране появляется главное окно приложения, имеющее меню. При выборе пункта "Модальный диалог" на экране появляется диалоговая панель, определенная в файле ресурсов. Вначале поле редактирования содержит строку "Пустой текст". В нее пользователь может ввести любой текст. Если нажать кнопку "Сброс", тогда в поле редактирования появляется текст "Текст по умолчанию".

Кроме кнопки "Сброс" в диалоговой панели находятся еще две кнопки: "OK" и "Отмена". Если нажать на кнопку "OK", то диалоговая панель закроется, а на экране появляется текстовое сообщение, содержащее текст, введенный пользователем. Если нажать кнопку "Отмена", то диалоговая панель также закрывается, но выводится текст, задаваемый по умолчанию.

Проект приложения приведен в файле dlg1.zip.

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

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

Похожие материалы

Информация о работе

Тип:
Методические указания и пособия
Размер файла:
262 Kb
Скачали:
0