winuser.h

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.