DialogBoxIndirectParam

Функция DialogBoxIndirectParam создает модальное диалоговое окно из шаблона поля диалогового окна в памяти. Перед отображением диалогового окна, функция передает определенное приложением значение процедуру диалогового окна как значение lParam сообщения WM_INITDIALOG . Приложение может использовать это значение для инициализации элементов управления диалогового окна.

int () DialogBoxIndirectParam HINSTANCE  hInstance, / / обработать для экземпляра приложенияLPCDLGTEMPLATEhDialogTemplate,  / / идентифицирует шаблон диалогового окнаHWNDhWndParent, / / дескриптор окна-владельцаDLGPROClpDialogFunc, / / указатель в диалоговое окно поле процедураLPARAMdwInitParam / / значение инициализации);
 

Параметры

hInstance
Определяет экземпляр модуля, создает диалогового окна.
hDialogTemplate
Указатель на объект глобальной памяти, содержащий шаблон, который DialogBoxIndirectParam использует для создания диалогового окна. Диалоговое окно поле шаблон состоит из заголовка, который содержит описание диалогового окна, а затем один или несколько дополнительных блоков данных, которые описывают каждый из элементов управления в диалоговом окне. Этот шаблон можно использовать стандартный формат или расширенный формат.

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

В расширенный шаблон для диалогового окна заголовок использует формат DLGTEMPLATEEX и определения элемента управления используют формат DLGITEMTEMPLATEEX.

hWndParent
Идентифицирует окно, которому принадлежит диалогового окна.
lpDialogFunc
Указатель на процедуру диалогового окна. Для получения дополнительных сведений о процедуру диалогового окна см. DialogProc.
dwInitParam
Указывает значение для передачи в диалоговым окном в параметре lParam сообщения WM_INITDIALOG.

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

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

Если вызов функции был неуспешен, возвращается значение –1. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.

Примечания

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

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

В шаблоне коробка стандартного диалога DLGTEMPLATE структуры и каждой из структур DLGITEMTEMPLATE должны быть выровнены по границам DWORD . Создание данных массив, который соответствует структуре DLGITEMTEMPLATE также должны быть выровнены по границе DWORD . Все другие массивы переменной длины в шаблоне должен должны быть выровнены по границам слов.

В шаблоне окна расширенного диалогового окна заголовка DLGTEMPLATEEX и каждой из определений управления DLGITEMTEMPLATEEX должны быть выровнены по границам DWORD . Массив данных создание, если таковые имеются, которые следует структуре DLGITEMTEMPLATEEX также должны быть выровнены по границе DWORD . Все другие массивы переменной длины в шаблоне должны быть выровнены по границам слов.

Все строки символов в поле шаблона диалогового окна, таких как названия для диалогового окна и кнопки, должны быть строками в Юникоде. Для создания кода, который работает на Windows и Windows NT, используйте функцию MultiByteToWideChar для создания этих строк Юникода.

Windows 95 и более поздние версии:Система может поддерживать до 255 элементов управления на поле шаблона диалогового окна. Для размещения более 255 элементов управления в диалоговом окне, создайте элементы управления в обработчике сообщение WM_INITDIALOG, а не их помещения в шаблоне.

Windows CE: Если пользователь нажимает ALT + H, когда диалоговое окно имеет фокус ввода, система посылает сообщение WM_HELP к процедуре диалогового окна. Приложение должно отвечать на это сообщение путем отображения контекстной справки для диалогового окна.

Для других ограничений для диалогового окна см CreateDialogIndirectParam.

QuickInfo

nbsp; Windows &NT: требует версии 3.1 или более поздней версии.
Windows:Требует Windows 95 или более поздней версии.
Windows CE:Требует версии 1.0 или более поздней версии.
Заголовок:Объявленные в winuser.h.
Импорта библиотеки:Используйте user32.lib.
Юникод:В версии Юникода и ANSI в Windows NT.

Родственные слова

Диалогового окна Обзор функции окна диалога, CreateWindowEx, диалоговое окно, DialogBoxIndirect, DialogBoxParam, DialogProc, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, EndDialog, MultiByteToWideChar, WM_INITDIALOG, WM_SETFONT

Index