Большинство диалоговых окон, которые приходится включать в состав приложения, относятся к так называемым модальным окнам. Модальное окно выведено всегда поверх всех остальных окон на экране. Пользователь должен поработать в этом окне и обязательно закрыть его прежде, чем приступить к работе в любом другом окне этого же приложения. Примером может служить окно, которое открывается при выборе команды 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 имеет вид:
virtual int DoModal() – открывает модальное диалоговое окно и если в открытом диалоговом окне нажата кнопка ОК или Cancel возвращает значения соответствующие константам IDOK и IDCANCEL соответственно; возвращает –1, если функция не может открыть диалоговое окно.
Ø Обработать события закрытия диалогового окна IDD_OPTIONS можно с помощью, например, условного оператора и выводом сообщений с помощью функции AfxMessageBox :
if (rez==IDOK) AfxMessageBox("Вы нажали кнопку ОК");
else AfxMessageBox("Вы нажали кнопку Отмена");
События в диалоговом окне
Методы диалогового окна
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.