Макрокоманда DialogBox создает модальное диалоговое окно из ресурса шаблона блока диалога. DialogBox не возвращает управления до тех пор, пока заданная функция обратного вызова не завершит работу модального диалогового окна путем вызова функции EndDialog. Макрокоманда DialogBox использует функцию DialogBoxParam.
Синтаксис
INT_PTR DialogBox( HINSTANCE hInstance, LPCTSTR lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc ); |
Параметры
hInstance
[in] Дескриптор модуля, исполняемый файл которого содержит шаблон диалогового окна.lpTemplate
[in] Определяет шаблон диалогового окна. Этот параметр является или указателем на строку символов с нулем в конце, которая устанавливает имя шаблона блока диалога, или целочисленным значением, которое определяет идентификатор ресурса шаблона диалогового окна. Если параметр определяет идентификатор ресурса, его старшее слово должно быть нуль, а младшее слово должно содержать идентификатор. Вы можете использовать макрокоманду MAKEINTRESOURCE, чтобы создать это значение.hWndParent
[in] Дескриптор окна, которое владеет диалоговым окном.lpDialogFunc
[in] Указатель на процедуру диалогового окна. Дополнительную информацию о процедуре диалогового окна, см. в описании DialogProc.Возвращаемое значение
Если функция завершается успешно, возвращаемое значение - параметр nResult при вызове функции EndDialog, используемой, чтобы завершить работу диалогового окна.
Если функция завершается ошибкой, потому что параметр hWndParent недопустим, возвращаемое значение равняется нулю. Функция возвращает нуль в этой ситуации для совместимости с предыдущими версиями Microsoft ® Windows ®. Если функция завершается ошибкой по любой другой причине, возвращаемое значение равно - (минус)1. Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.
Замечания
Макрокоманда DialogBox использует функцию CreateWindowEx, чтобы создать диалоговое окно. Затем DialogBox отправляет сообщение WM_INITDIALOG (и сообщение WM_SETFONT, если шаблон определяет стиль DS_SETFONT или DS_SHELLFONT) в процедуру диалогового окна. Функция показывает на экране диалоговое окно (независимо от того, определяет ли шаблон стиль WS_VISIBLE), блокирует окно-владельца, и начинает свой собственный цикл обработки сообщений, чтобы извлекать и распределять сообщения для диалогового окна.
Когда процедура диалогового окна вызывает функцию EndDialog, DialogBox разрушает диалоговое окно, заканчивает цикл обработки сообщений, включает окно владельца (если ранее оно работало) и возвращает параметр nResult, заданный процедурой диалогового окна, когда она вызвала EndDialog.
Windows 95/98/Me: Система может поддерживать максимум 255 органов управления в шаблоне диалогового окна. Чтобы разместить больше чем 255 элементов управления в диалоговом окне, создавайте органы управления в обработчике сообщения WM_INITDIALOG, а не помещайте их в шаблон.
Пример
Пример, см. в статье Создание модального диалогового окна.
Смотри также
Обзор Диалоговые окна, Функции, используемые диалоговыми окнами, CreateDialog, CreateWindowEx, DialogBoxIndirect, DialogBoxIndirectParam, DialogBoxParam, DialogProc, EndDialog, MAKEINTRESOURCE, WM_INITDIALOG, WM_SETFONT
Размещение и совместимость DialogBox |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
User32.lib |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |