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

Вызов диалога

Обработкой сообщений WM_COMMAND, которые инициируются после выбора команд меню, занимается оконная процедура. При этом она вызывает функцию DialogBox(hInst,MAKEINTRESOURCE(идент.),hWnd, адрес диал. проц-ры).

Для вызова функции необходимо использовать дескриптор экземпляра приложения (hInst), идентификатор шаблона диалога (MAKEINTRESOURCE(идент.)), дескриптор родительского окна для окна диалога (hWnd) и адрес диалоговой процедуры.

Функция DialogBox создает и выводит на экран диалоговое окно и сообщает Windows, что диалоговая процедура для обслуживания окна имеет адрес (адрес диал. проц.). После этого она посылает сообщение WM_INITDIALOG диалоговой процедуре, отображает диалоговое окно и запускает цикл обработки сообщений для менеджера диалогового окна.

Когда диалоговая процедура вызывает функцию EndDialog, функция DialogBox уничтожает диалоговое окно и завершает работу цикла обработки сообщений.

Различия между модальными и немодальными окнами диалога

Модальные диалоговые окна создаются при помощи функции DialogBox. Эта функция возвращает управление только после закрытия диалогового окна. Немодальные диалоговые окна создаются с помощью функции CreateDialog. Она принимает такие же параметры, что и функция DialogBox.

Определяя свойства шаблона немодального диалогового окна, обязательно установите флажок Видимое в окне свойств. Если этот флажок сброшен, то для появления окна потребуется после вызова функции CreateDialog дополнительно вызвать функцию ShowWindow(hDlg, SW_SHOW), где:

hDlg – идентификатор окна;

SW_SHOW – одна из констант sw_(константы отображения окна).