CreateDialogIndirect макрос создает немодальное диалоговое окно из шаблона поля диалогового окна в памяти. Макрос CreateDialogIndirect использует функцию CreateDialogIndirectParam.
() HWND CreateDialogIndirect HINSTANCE hInstance, / / обработать для экземпляра приложенияLPCDLGTEMPLATElpTemplate, / / указатель в диалоговое окно поле шаблонHWNDhWndParent, / / дескриптор окна-владельцаDLGPROClpDialogFunc / / указатель в диалоговое окно поле процедура);
В стандартном шаблоне заголовок является DLGTEMPLATE структура, после чего дополнительные массивы переменной длины. Данные для каждого элемента управления состоит из DLGITEMTEMPLATE структуры, после чего дополнительные массивы переменной длины.
В шаблоне окна расширенного диалогового окна заголовка использует формат DLGTEMPLATEEX и определения элемента управления используют формат DLGITEMTEMPLATEEX.
После CreateDialogIndirect значение, можно освободить шаблон, который используется только для получения диалогового окна запущен.
Если функция выполнена успешно, возвращаемое значение является дескриптор окна для диалогового окна.
Если вызов функции был неуспешен, возвращается значение NULL. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.
Макрос CreateDialogIndirect CreateWindowEx функция используется для создания диалогового окна. CreateDialogIndirect затем отправляет сообщение WM_INITDIALOG процедуру диалогового окна. Если шаблон определяет стиль DS_SETFONT, функция также посылает сообщение WM_SETFONT процедуру диалогового окна. Функция отображает диалоговое окно, если шаблон определяет стиль WS_VISIBLE. И наконец CreateDialogIndirect возвращает дескриптор окна для диалогового окна.
После CreateDialogIndirect значение, можно использовать функцию ShowWindow для отображения диалогового окна (если оно не отображается). Чтобы уничтожить диалогового окна, используйте функцию DestroyWindow.
В шаблоне коробка стандартного диалога DLGTEMPLATE структуры и каждой из структур DLGITEMTEMPLATE должны быть выровнены по границам DWORD . Создание данных массив, который соответствует структуре DLGITEMTEMPLATE также должны быть выровнены по границе DWORD . Все другие массивы переменной длины в шаблоне должен должны быть выровнены по границам слов.
В шаблоне окна расширенного диалогового окна заголовка DLGTEMPLATEEX и каждой из определений управления DLGITEMTEMPLATEEX должны быть выровнены по границам DWORD . Массив данных создание, если таковые имеются, которые следует структуре DLGITEMTEMPLATEEX также должны быть выровнены по границе DWORD . Все другие массивы переменной длины в шаблоне должны быть выровнены по границам слов.
Все строки символов в поле шаблона диалогового окна, таких как названия для диалогового окна и кнопки, должны быть строками в Юникоде. Для создания кода, который работает на Windows и Windows NT, используйте функцию MultiByteToWideChar для создания этих строк Юникода.
Windows 95 и более поздние версии:Система может поддерживать до 255 элементов управления на поле шаблона диалогового окна. Для размещения более 255 элементов управления в диалоговом окне, создайте элементы управления в обработчике сообщение WM_INITDIALOG, а не их помещения в шаблоне.
Windows CE: В структуре DLGTEMPLATE в диалоговом окне шаблон, упоминаемый в параметре lpTemplate .. поддерживаются не все стили
nbsp; Windows &NT: требует версии 3.1 или более поздней версии.
Windows:Требует Windows 95 или более поздней версии.
Windows CE:Требует версии 1.0 или более поздней версии.
Заголовок:Объявленные в winuser.h.
Импорта библиотеки:Используйте user32.lib.
Юникод:В версии Юникода и ANSI в Windows NT.
Диалогового окна Обзор функции окна диалога, CreateDialog, CreateDialogIndirectParam, CreateDialogParam, CreateWindowEx, DestroyWindow, DialogProc, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, MultiByteToWideChar, ShowWindow, WM_INITDIALOG, WM_SETFONT