Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VC Лекции PDF / VC 02 Лек Диалоговое окно.pdf
Скачиваний:
39
Добавлен:
15.02.2015
Размер:
390.28 Кб
Скачать

Visual C++

Лекция 2

6

Tool window – используется для перемещаемых панелей инструментов. В заголовке используется меньший шрифт (по умолчанию - False).

Client edge – отображает утопленную границу диалогового окна (по умолчанию - False).

Static edge – отображает утопленную границу дочернего окна (по умолчанию - False).

Transparent – определяет прозрачный стиль окна (по умолчанию - False).

Control parent – позволяет пользователю перемещаться между дочерними формами с помощью клавиши Tab (по умолчанию - False).

No parent notify – отменяет WM_PARENTNOTIFY сообщения от дочернего окна к родительскому (по умолчанию - False).

Немодальные диалоговые окна

Большинство диалоговых окон, которые приходится включать в состав приложения, относятся к так называемым модальным окнам. Модальное окно выведено всегда поверх всех остальных окон на экране. Пользователь должен поработать в этом окне и обязательно закрыть его прежде, чем приступить к работе в любом другом окне этого же приложения. Примером может служить окно, которое открывается при выборе команды File Open любого приложения Windows.

Немодальное диалоговое окно позволяет пользователю, не закончив работы с ним, "перепрыгнуть" в другое окно приложения, сделать там нечто и затем снова вернуться в немодальное окно и продолжить операцию. Типичными немодальными окнами являются те, которые открываются при отработке команд Edit Find (Правка Поиск) и Edit Replace (Правка Замена) во многих приложениях Windows.

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

– нужно очень аккуратно. Как правило, они создаются оператором new, а удаляются – оператором delete при обработке щелчка мышью на кнопке ОК или Cancel. Разработчику придется перегрузить большинство функций-членов класса диалогового окна. Короче, прежде, чем приступать к программированию с немодальными окнами, нужно достаточно хорошо освоить приемы программирования модальных окон.

Вывод диалогового окна на экран

Для вывода диалогового окна, например IDD_OPTIONS, на экран нужно выполнить следующие операции:

В заголовке файла класса диалогового окна, из которого вы хотите открыть диалоговое окно IDD_OPTIONS, нужно объявить заголовочный файл Options.h. Синтаксис объявления заголовочного файла имеет вид:

#include "имя заголовочного файла" например:

#include "Options.h"

Создать объект, с помощью которого вы хотите вывести диалоговое окно на экран, например кнопку

IDC_OPTIONS

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

Add Member Function щёлкните на кнопке OK.

В процедуре обработки события щелчка на кнопке IDC_OPTIONS, нужно создать экземпляр класса диалогового окна, синтаксис которого имеет вид:

<имя класса> <имя экземпляра класса>; например:

COptions dlg;

отобразить диалоговое окно IDD_OPTIONS на экране с помощью функции DoModal, синтаксис команды имеет вид:

[<переменная>=]<имя экземпляра класса> . DoModal() например: int rez = dlg.DoModal();

Синтаксис функции DoModal имеет вид:

Выжол Ю.А.

Visual C++

Лекция 2

7

virtual int DoModal() – открывает модальное диалоговое окно и если в открытом диалоговом окне нажата кнопка ОК или Cancel возвращает значения соответствующие константам IDOK и IDCANCEL соответственно; возвращает –1, если функция не может открыть диалоговое окно.

Обработать события закрытия диалогового окна IDD_OPTIONS можно с помощью, например, условного оператора и выводом сообщений с помощью функции AfxMessageBox :

if (rez==IDOK) AfxMessageBox("Вы нажали кнопку ОК"); else AfxMessageBox("Вы нажали кнопку Отмена");

Выжол Ю.А.