Estructura DLGITEMTEMPLATE
Definición
typedef struct { DWORD style; DWORD dwExtendedStyle; short x; short y; short cx; short cy; WORD id; } DLGITEMTEMPLATE;
Define las dimensiones y estilo de un control en un cuadro de diálogo. Una o más de estas estructuras son combinadas con una estructura DLGTEMPLATE para formar una plantilla estándar para un cuadro de diálogo.
Descripción
- style
- El estilo del control. Este miembro puede ser una combinación de los valores de estilo de ventana (como WS_BORDER) y uno o más de los valores de estilo de control (como BS_PUSHBUTTON y ES_LEFT).
- dwExtendedStyle
- Los estilos extendidos para una ventana. Este miembro no se usa para crear controles en cuadros de diálogo, pero las aplicaciones que usan plantillas de cuadros de diálogo pueden usarlo para crear otros tipos de ventanas. Para una lista de valores, ver Estilos Extendidos de Ventana.
- x
- La coordenada x, en unidades de cuadro de diálogo, de la esquina superior izquierda del control. Esta coordenada es siempre relativa a la esquina superior izquierda del área de cliente del cuadro de diálogo.
- y
- La coordenada y, en unidades de cuadro de diálogo, de la esquina superior izquierda del control. Esta coordenada es siempre relativa a la esquina superior izquierda del área de cliente del cuadro de diálogo.
- cx
- La anchura, en unidades de cuadro de diálogo, del control.
- cy
- La altura, en unidades de cuadro de diálogo, del control.
- id
- El identificador del control.
Observaciones
En una plantilla estándar para un cuadro de diálogo, la estructura DLGITEMTEMPLATE siempre va inmediatamente seguida por tres arrays de longitud variable que especifican la clase, título y datos de creación del control. Cara array consiste en uno o más elementos de 16 bits.
Cada estructura DLGITEMTEMPLATE en la plantilla debe estar asignada con un alineamiento DWORD. Los arrays de clase y título deben tener un alineamiento WORD. El array de datos de creación debe tener un alineamiento WORD.
Inmediatamente después de cada estructura DLGITEMTEMPLATE debe haber un array de clase del control que especifica la clase de ventana del control. Si el primer elemento de ese array es un valor distinto de 0xFFFF, el sistema trata el array como una cadena Unicode terminada en cero que especifica el nombre de una clase de ventana registrada. Si el primer elemento es 0xFFFF, el array tiene un elemento adicional que especifica el valor ordinal de una clases predefinida del sistema. El ordinal puede ser uno de los siguientes valores atómicos:
Valor | Significado |
---|---|
0x0080 | Button |
0x0081 | Edit |
0x0082 | Static |
0x0083 | List box |
0x0084 | Scroll bar |
0x0085 | Combo box |
Después del array de clase aparece el array de título que contiene el texto inicial o el identificador de recurso del control. Si el primer elemento de este array es 0xFFFF, el array contiene un elemento adicional que especifica un valor ordinal de un recurso, como un icono, dentro del fichero ejecutable. Se puede usar un identificador de recurso para controles, como controles estáticos de icono, que carga y muestra un icono u otro recurso distinto de un texto. Si el primer elemento es un valor distinto de 0xFFFF, el sistema trata el array como una cadena Unicode terminada en cero que especifica el texto inicial.
Los datos de creación empiezan en el siguiente alineamiento WORD después del array de título. Estos datos de creación pueden tener cualquier tamaño y formato. Si la primera palabra de los datos de creación es distinta de cero, indica el tamaño, en bytes, de los datos de creación (incluyendo la palabra de tamaño). El procedimiento de ventana del control debe ser capaz de interpretar los datos. Cuando el sistema crea el control, pasa un puntero a estos datos en el parámetro lParam del mensaje WM_CREATE que envía al control.
Se se especifica una cadena de caracteres en los arrays de clase y título, se deben usar cadenas Unicode. Usar la función MultiByteToWideChar 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.