Estructura DLGTEMPLATEEX
Definición
typedef struct { WORD dlgVer; WORD signature; DWORD helpID; DWORD exStyle; DWORD style; WORD cDlgItems; short x; short y; short cx; short cy; sz_Or_Ord menu; sz_Or_Ord windowClass; WCHAR title[titleLen]; WORD pointsize; WORD weight; BYTE italic; BYTE charset; WCHAR typeface[stringLen]; } DLGTEMPLATEEX;
Una plantilla de cuadro de diálogo extendida empieza con una cabecera DLGTEMPLATEEX que describe el cuadro de diálogo y especifica el número de controles en el cuadro de diálogo. Para cada control en el cuadro de diálogo, una plantilla de cuadro de diálogo extendida tiene un bloque de datos que usa el formato DLGITEMTEMPLATEEX para describir el control.
La estructura DLGTEMPLATEEX no está definida en ningún fichero de cabecera estándar. La definición de la estructura se muestra aquí para explicar el formato de una plantilla de cuadro de diálogo extendida.
Descripción
- dlgVer
- El número de versión de la plantilla de cuadro de diálogo extendida. Este miembro debe ser siempre asignado a 1.
- signature
- Indica si una plantilla es una plantilla de cuadro de diálogo extendida. Si signature es 0xFFFF, se trata de una plantilla de cuadro de diálogo extendida. En ese caso, el miembro dlgVer especifica el número de versión de la plantilla. Si signature es un valor distinto de 0xFFFF, se trata de una plantilla de cuadro de diálogo estándar que usa las estructuras DLGTEMPLATE y DLGITEMTEMPLATE.
- helpID
- El identificador de ayuda contextual para la ventana de cuadro de diálogo. Cuando el sistema envía un mensaje WM_HELP, pasa este valor en el miembro wContextId de la estructura HELPINFO.
- exStyle
- Los estilos de ventana extendidos. Este miembro no se usa cuando se crean cuadros de diálogo, pero las aplicaciones que usan plantillas de cuadro de diálogo pueden usarlo para crear otros tipos de ventanas. Para una lista de valores, ver Estilos Extendidos de Ventana
- style
El estilo del cuadro de diálogo. Este miembro puede ser una combinación de los valores de estilo de ventana y de los valores de estilo de diálogo.
Si style incluye los estilos de diálogo DS_SETFONT o DS_SHELLFONT, la cabecera DLGTEMPLATEEX de la plantilla de cuadro de diálogo extendida contiene cuatro miembros adicionales (pointsize, weight, italic y typeface) que describen la fuente a usar para el texto en el área de cliente y controles del cuadro de diálogo. Si es posible, el sistema crea una fuente de acuerdo a los valores especificados en esos miembros. Entonces, el sistema envía un mensaje WM_SETFONT al cuadro de diálogo y a cada control para proporcionar un manipulador de la fuente.
- cDlgItems
- El número de controles en en cuadro de diálogo.
- x
- La coordenada x, en unidades de cuadro de diálogo, de la esquina superior izquierda del cuadro de diálogo
- y
- La coordenada y, en unidades de cuadro de diálogo, de la esquina superior izquierda del cuadro de diálogo
- cx
- La anchura, en unidades de diálogo, del cuadro de diálogo.
- cy
- La altura, en unidades de diálogo, del cuadro de diálogo.
- menu
- Un array de longitud variable de elementos de 16 bits que identifica un recurso de menú para el cuadro de diálogo. Si el primer elemento es 0x0000, el cuadro de diálogo no tendrá menú y el array no tendrá otros elementos. Si el primer elemento es 0xFFFF, el array tendrá un elemento adicional que especifica el valor ordinal de un recurso de menú dentro del fichero ejecutable. Si el primer elemento tiene otro valor, el sistema trata el array como una cadena Unicode terminada en cero que especifica el nombre de un recurso de menú dentro del fichero ejecutable.
- windowClass
- Un array de longitud variable de elementos de 16 bits que identifican la clase de ventana del cuadro de diálogo. Si el primer elemento del array es 0x0000, el sistema usa la clase de cuadro de diálogo predefinida para el cuadro de diálogo y el array no tendrá más elementos. Si el primer elemento es 0xFFFF, el array tendrá un elemento adicional que especifica el valor ordinal predefinido de clase de ventana de sistema. Si el primer elemento tiene cualquier otro valor, el sistema trata el array como una cadena Unicode terminada en cero que especifica el nombre de una clase de ventana registrada.
- title
- El título del cuadro de diálogo. Si el primer elemento de este array es 0x0000, el cuadro de diálogo no tendrá título y el array no tendrá más elementos.
- pointsize
- weight
El peso de la fuente. Tener en cuenta, que aunque se puede especificar cualquiera de los valores para el miembro lfWeight de la estructura LOGFONT, cualquier valor usado será automáticamente cambiado a FW_NORMAL.
Este miembro solo estará presente si el miembro style especifica DS_SETFONT o DS_SHELLFONT.
- italic
Indica si la fuente es itálica. Si este valor es TRUE, la fuente será itálica.
Este miembro solo estará presente si el miembro style especifica DS_SETFONT o DS_SHELLFONT.
- charset
El juego de caracteres a usar. Para mayor información ver el miembro lfcharset de LOGFONT.
Este miembro solo estará presente si el miembro style especifica DS_SETFONT o DS_SHELLFONT.
- typeface
El nombre del tipo para la fuente.
Este miembro solo estará presente si el miembro style especifica DS_SETFONT o DS_SHELLFONT.
El tamaño de la fuente a usar para el texto en el cuadro de diálogo y en sus controles.
Este miembro solo estará presente si el miembro style especifica DS_SETFONT o DS_SHELLFONT.
Observaciones
Se puede usar una plantilla de cuadro de diálogo extendida en lugar de la plantilla estándar en las funciones CreateDialogIndirectParam, DialogBoxIndirectParam, CreateDialogIndirect y DialogBoxIndirect.
A continuación de una cabecera DLGTEMPLATEEX en una plantilla de cuadro de diálogo extendida hay una o más estructuras DLGITEMTEMPLATEEX que describen los controles en el cuadro de diálogo. El meimbro cDlgItems de la estructura DLGTEMPLATEEX especifica el número de estructuras DLGITEMTEMPLATEEXque siguen en la plantilla.
Cada estructura DLGITEMTEMPLATEEX en la plantilla debe estar alineada en un DWORD. Si el miembro style especifica el estilo DS_SETFONT o DS_SHELLFONT, la primera estructura DLGITEMTEMPLATEEX empieza en el primer alineamiento DWORD después de la cadena typeface. Si estos estilos no se especifican, la primera estructura empieza en el primer alineamiento DWORD después de la cadena title.
Los arrays menu, windowClass, title y typeface deben estar alineados en WORD.
Si se especifican cadenas de caracteres en menu, windowClass, windowClass, title y typeface, se deben usar cadenas Unicode. La función MultiByteToWideChar se puede usar para generar cadenas Unicode a partir de cadenas ANSI.
Los miembros x, y, cx y cy especifican valores en unidades de cuadro de diálogo. Se pueden convertir estos valores a unidades de pantalla (pixels) usando la función MapDialogRect.