Функция DialogBox

Макрокоманда 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

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz