Поделиться через


Макрос DialogBoxA (winuser.h)

Создает модальное диалоговое окно на основе ресурса шаблона диалогового окна. DialogBox не возвращает управление, пока указанная функция обратного вызова не завершит модальное диалоговое окно путем вызова функции EndDialog .

DialogBox реализуется как вызов функции DialogBoxParam .

Синтаксис

void DialogBoxA(
  [in, optional]  hInstance,
  [in]            lpTemplate,
  [in, optional]  hWndParent,
  [in, optional]  lpDialogFunc
);

Параметры

[in, optional] hInstance

Тип: HINSTANCE

Дескриптор модуля, содержащего шаблон диалогового окна. Если этот параметр имеет значение NULL, то используется текущий исполняемый файл.

[in] lpTemplate

Тип: LPCTSTR

Шаблон диалогового окна. Этот параметр является либо указателем на символьную строку, завершающуюся null, которая указывает имя шаблона диалогового окна, либо целочисленное значение, указывающее идентификатор ресурса шаблона диалогового окна. Если параметр задает идентификатор ресурса, его слово высокого порядка должно быть равно нулю, а слово низкого порядка должно содержать идентификатор. Для создания этого значения можно использовать макрос MAKEINTRESOURCE .

[in, optional] hWndParent

Тип: HWND

Дескриптор для окна, которому принадлежит диалоговое окно.

[in, optional] lpDialogFunc

Тип: DLGPROC

Указатель на процедуру диалогового окна. Дополнительные сведения о процедуре диалогового окна см. в разделе DialogProc.

Возвращаемое значение

None

Remarks

Макрос DialogBox использует функцию CreateWindowEx для создания диалогового окна. Затем DialogBox отправляет WM_INITDIALOG сообщение (и WM_SETFONT сообщение, если шаблон задает стиль DS_SETFONT или DS_SHELLFONT) в процедуру диалогового окна. Функция отображает диалоговое окно (независимо от того, указывает ли шаблон стиль WS_VISIBLE ), отключает окно владельца и запускает собственный цикл сообщений для получения и отправки сообщений для диалогового окна.

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

Примеры

Пример см. в разделе Создание модального диалогового окна.

Примечание

Заголовок winuser.h определяет DialogBox как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll

См. также раздел

Основные понятия

CreateDialog

CreateWindowEx

Диалоговые окна

DialogBoxIndirect

DialogBoxIndirectParam

DialogBoxParam

DialogProc

EndDialog

MAKEINTRESOURCE

Справочные материалы

WM_INITDIALOG

WM_SETFONT