Функция DialogBoxIndirectParamA (winuser.h)
Создает модальное диалоговое окно из шаблона диалогового окна в памяти. Перед отображением диалогового окна функция передает определяемое приложением значение в процедуру диалогового окна в качестве параметра lParam сообщения WM_INITDIALOG. Приложение может использовать это значение для инициализации элементов управления диалоговым окном.
Синтаксис
INT_PTR DialogBoxIndirectParamA(
[in, optional] HINSTANCE hInstance,
[in] LPCDLGTEMPLATEA hDialogTemplate,
[in, optional] HWND hWndParent,
[in, optional] DLGPROC lpDialogFunc,
[in] LPARAM dwInitParam
);
Параметры
[in, optional] hInstance
Тип: HINSTANCE
Дескриптор модуля, создающего диалоговое окно.
[in] hDialogTemplate
Тип: LPCDLGTEMPLATE
Шаблон, DialogBoxIndirectParam используется для создания диалогового окна. Шаблон диалогового окна состоит из заголовка, описывающего диалоговое окно, за которым следует один или несколько дополнительных блоков данных, описывающих каждый из элементов управления в диалоговом окне. Шаблон может использовать стандартный или расширенный формат.
В стандартном шаблоне диалогового окна заголовок — это структура DLGTEMPLATE с дополнительными массивами переменной длины. Данные для каждого элемента управления состоят из структуры DLGITEMTEMPLATE с дополнительными массивами переменной длины.
В расширенном шаблоне диалогового окна заголовок использует формат DLGTEMPLATEEX, а определения элементов управления используют формат DLGITEMTEMPLATEEX.
[in, optional] hWndParent
Тип: HWND
Дескриптор окна, которому принадлежит диалоговое окно.
[in, optional] lpDialogFunc
Тип: DLGPROC
Указатель на процедуру диалогового окна. Дополнительные сведения о процедуре диалогового окна см. в разделе DialogProc.
[in] dwInitParam
Тип: LPARAM
Значение, передаваемое в диалоговое окно в параметре lParam
Возвращаемое значение
Тип: INT_PTR
Если функция выполнена успешно, возвращаемое значение является параметром nResult, указанным в вызове функции EndDialog, которая использовалась для завершения диалогового окна.
Если функция завершается ошибкой, так как параметр hWndParent недопустим, возвращаемое значение равно нулю. Функция возвращает ноль в этом случае для совместимости с предыдущими версиями Windows. Если функция завершается ошибкой по какой-либо другой причине, возвращаемое значение равно –1. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.
Замечания
Функция DialogBoxIndirectParam использует функцию CreateWindowEx для создания диалогового окна. DialogBoxIndirectParam затем отправляет WM_INITDIALOG сообщение в процедуру диалогового окна. Если шаблон задает стиль DS_SETFONT или DS_SHELLFONT, функция также отправляет WM_SETFONT сообщение в процедуру диалогового окна. Функция отображает диалоговое окно (независимо от того, указывает ли шаблон стиль WS_VISIBLE), отключает окно владельца и запускает свой собственный цикл сообщений для получения и отправки сообщений для диалогового окна.
Когда процедура диалогового окна вызывает функцию EndDialog, DialogBoxIndirectParam уничтожает диалоговое окно, завершает цикл сообщений, включает окно владельца (если ранее включено), и возвращает параметр nResult, указанный процедурой диалогового окна при вызове EndDialog.
В стандартном шаблоне диалогового окна структура
В шаблоне расширенного диалогового окна заголовок DLGTEMPLATEEX
Все строки символов в шаблоне диалогового окна, такие как заголовки диалогового окна и кнопки, должны быть строками Юникода.
Заметка
Заголовок winuser.h определяет DialogBoxIndirectParam как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winuser.h (включая Windows.h) |
библиотеки |
User32.lib |
DLL | User32.dll |
набор API | ext-ms-win-ntuser-dialogbox-l1-1-0 (представлено в Windows 8) |
См. также
концептуальные
Справочник