Estructura DRAWITEMSTRUCT
Definición
typedef struct tagDRAWITEMSTRUCT { // dis UINT CtlType; UINT CtlID; UINT itemID; UINT itemAction; UINT itemState; HWND hwndItem; HDC hDC; RECT rcItem; DWORD itemData; } DRAWITEMSTRUCT;
La estructura DRAWITEMSTRUCT proporciona información que la ventana padre debe tener para determinar cómo pintar un control owner-drawn control o ítem de menú. La ventana propietaria del control owner-drawn o menú ítem recibe un puntero a esta estructura en el parámetro lParam del mensaje WM_DRAWITEM.
Descripción
CtlType: especifica el tipo de control. Este miembro puede tener uno de los valores siguientes:
Valor | Significado |
---|---|
ODT_BUTTON | Botón owner-drawn |
ODT_COMBOBOX | Combo box owner-drawn |
ODT_LISTBOX | list box owner-drawn |
ODT_LISTVIEW | Control List view |
ODT_MENU | Menú ítem owner-drawn |
ODT_STATIC | Control estático owner-drawn |
ODT_TAB | Control Tab |
CtlID: especifica el identificador del combo box, list box, botón o control estático. Este miembro no se usa para un ítem de menú.
itemID: especifica el identificador de ítem de menú o el índice del ítem en un list box o combo box. Para un list box o combo box vacío, este miembro puede ser -1. Esto permite a la aplicación dibujar sólo el rectángulo de foco en las coordenadas especificadas por el miembro rcItem aunque no existan ítems en el control. Esto indica al usuario si el list box o combo box tiene el foco. El modo en que estén activos los bits en el miembro itemAction determina si el rectángulo debe ser dibujado porque el list box o combo box tiene el foco.
itemAction: especifica la acción de dibujado requerida. Este miembro puede tener uno de los siguientes valores:
Valor | Significado |
---|---|
ODA_DRAWENTIRE | El control entero necesita ser dibujado. |
ODA_FOCUS | El control a perdido o recuperado el foco del teclado. Debe comprobarse el miembro itemState para determinar si el control tiene el foco. |
ODA_SELECT | El estado de selección ha cambiado. Se debe compronar el miembro itemState para determinar el nuevo estado de selección. |
itemState: Especifica el estado visual del ítem después de que la acción de dibujado actual tenga lugar. Este miembro puede ser una combinación de los siguientes valores:
Valor | Significado |
---|---|
ODS_CHECKED | El ítem de menú debe estar marcado. Este bit se usa sólo en un menú. |
ODS_COMBOBOXEDIT | El dibujado tiene lugar en el campo de selección (control edit) de un combo box ownerdrawn. |
ODS_DEFAULT | El ítem es el ítem por defecto. |
ODS_DISABLED | El ítem debe ser dibujado como deshabilitado. |
ODS_FOCUS | El ítem tiene el foco del teclado. |
ODS_GRAYED | El ítem estará gris (grayed). Este bit se usa sólo en un menú. |
ODS_SELECTED | El estado del ítem de menú es seleccionado. |
hwndItem: identifica el control para combo boxes, list boxes, botone y controles estáticos. Para menús, este miembro identifica al menú que contenga al ítem.
hDC: identifica un contexto de dispositivo; este contexto de dispositivo dene ser usado cunado se realicen las operaciones de dibujo en el control.
rcItem: especifica un rectángulo que define los límites de control a dibujar. Este rectángulo está en el contexto de dispositivo especificado por el miembro hDC. Windows recorta automátcamente cualquier cosa que la ventana propietaria trace en el contexto de dispositivo para combo boxes, list boxes y botones, pero no recorta ítems de menú. Cuando se dibujen ítems de menú, la ventana propietaria no debe dibujar fuera de los límites del rectángulo definido por el miembro rcItem.
itemData: especifica el valor de 32 bits definido por la aplicación asociado al ítem de menú. Para un control, este parámetro especifica el último valor asignado al list box o combo box por el mensaje LB_SETITEMDATA o CB_SETITEMDATA. Si el list box o combo box tiene el estilo LBS_HASSTRINGS o CBS_HASSTRINGS, este valor es inicialmente cero. En otro caso, este valor es incialmente el valor que fue pasado al list box o combo box en el parámetro lParam de uno de los mensajes siguientes:
CB_ADDSTRING
CB_INSERTSTRING
LB_ADDSTRING
LB_INSERTSTRING
Si ctlType es ODT_BUTTON o ODT_STATIC, itemData es cero.