Вызов диалога
Обработкой сообщений 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_(константы
отображения окна).