Macro CreateDialogIndirectA (winuser.h)
Crea un cuadro de diálogo modela a partir de una plantilla de cuadro de diálogo en memoria. La macro CreateDialogIndirect usa la función CreateDialogIndirectParam .
Sintaxis
void CreateDialogIndirectA(
[in, optional] hInstance,
[in] lpTemplate,
[in, optional] hWndParent,
[in, optional] lpDialogFunc
);
Parámetros
[in, optional] hInstance
Tipo: HINSTANCE
Identificador del módulo que crea el cuadro de diálogo.
[in] lpTemplate
Tipo: LPCDLGTEMPLATE
Plantilla que CreateDialogIndirect usa para crear el cuadro de diálogo. Una plantilla de cuadro de diálogo consta de un encabezado que describe el cuadro de diálogo, seguido de uno o varios bloques adicionales de datos que describen cada uno de los controles del cuadro de diálogo. La plantilla puede usar el formato estándar o el formato extendido.
En una plantilla estándar, el encabezado es una estructura DLGTEMPLATE seguida de matrices de longitud variable adicionales. Los datos de cada control constan de una estructura DLGITEMTEMPLATE seguida de matrices de longitud variable adicionales.
En una plantilla de cuadro de diálogo extendido, el encabezado usa el formato DLGTEMPLATEEX y las definiciones de control usan el formato DLGITEMTEMPLATEEX .
Después de que Se devuelva CreateDialogIndirect , puede liberar la plantilla, que solo se usa para iniciar el cuadro de diálogo.
[in, optional] hWndParent
Tipo: HWND
Identificador de la ventana que posee el cuadro de diálogo.
[in, optional] lpDialogFunc
Tipo: DLGPROC
Puntero al procedimiento del cuadro de diálogo. Para obtener más información sobre el procedimiento del cuadro de diálogo, consulte DialogProc.
Valor devuelto
None
Observaciones
La macro CreateDialogIndirect usa la función CreateWindowEx para crear el cuadro de diálogo. CreateDialogIndirect envía un mensaje de WM_INITDIALOG al procedimiento del cuadro de diálogo. Si la plantilla especifica el estilo DS_SETFONT o DS_SHELLFONT, la función también envía un mensaje WM_SETFONT al procedimiento del cuadro de diálogo. La función muestra el cuadro de diálogo si la plantilla especifica el estilo WS_VISIBLE. Por último, CreateDialogIndirect devuelve el identificador de ventana al cuadro de diálogo.
Después de que CreateDialogIndirect devuelva, puede usar la función ShowWindow para mostrar el cuadro de diálogo (si aún no está visible). Para destruir el cuadro de diálogo, use la función DestroyWindow . Para admitir la navegación por teclado y otras funciones del cuadro de diálogo, el bucle de mensajes del cuadro de diálogo debe llamar a la función IsDialogMessage .
En una plantilla de cuadro de diálogo estándar, la estructura DLGTEMPLATE y cada una de las estructuras DLGITEMTEMPLATE deben alinearse en los límites de DWORD . La matriz de datos de creación que sigue a una estructura DLGITEMTEMPLATE también debe alinearse en un límite DWORD . Todas las demás matrices de longitud variable de la plantilla deben alinearse en los límites de WORD .
En una plantilla de cuadro de diálogo extendida, el encabezado DLGTEMPLATEEX y cada una de las definiciones de control DLGITEMTEMPLATEEX deben alinearse en los límites de DWORD . La matriz de datos de creación, si existe, que sigue a una estructura DLGITEMTEMPLATEEX también debe alinearse en un límite DWORD . Todas las demás matrices de longitud variable de la plantilla deben alinearse en los límites de WORD .
Todas las cadenas de caracteres de la plantilla del cuadro de diálogo, como títulos para el cuadro de diálogo y los botones, deben ser cadenas Unicode. Use la función MultiByteToWideChar para generar cadenas Unicode a partir de cadenas ANSI.
Nota
El encabezado winuser.h define CreateDialogIndirect como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winuser.h (incluya Windows.h) |
Library | User32.lib |
Archivo DLL | User32.dll |
Consulte también
Conceptual
Otros recursos
Referencia