Estructura DRAWITEMSTRUCT (winuser.h)

Proporciona información que usa la ventana del propietario para determinar cómo pintar un elemento de menú o control dibujado por el propietario. La ventana propietaria del elemento de menú o control dibujado por el propietario recibe un puntero a esta estructura como el parámetro lParam del mensaje WM_DRAWITEM .

Sintaxis

typedef struct tagDRAWITEMSTRUCT {
  UINT      CtlType;
  UINT      CtlID;
  UINT      itemID;
  UINT      itemAction;
  UINT      itemState;
  HWND      hwndItem;
  HDC       hDC;
  RECT      rcItem;
  ULONG_PTR itemData;
} DRAWITEMSTRUCT, *PDRAWITEMSTRUCT, *LPDRAWITEMSTRUCT;

Miembros

CtlType

Tipo: UINT

Tipo de control. Este miembro puede ser uno de los valores siguientes. Vea la sección Comentarios.

Valor Significado
ODT_BUTTON
Botón dibujado por el propietario
ODT_COMBOBOX
Cuadro combinado dibujado por el propietario
ODT_LISTBOX
Cuadro de lista dibujado por el propietario
ODT_LISTVIEW
Control de vista de lista
ODT_MENU
Elemento de menú dibujado por el propietario
ODT_STATIC
Control estático dibujado por el propietario
ODT_TAB
Control Tab

CtlID

Tipo: UINT

Identificador del cuadro combinado, cuadro de lista, botón o control estático. Este miembro no se usa para un elemento de menú.

itemID

Tipo: UINT

Identificador de elemento de menú para un elemento de menú o el índice del elemento en un cuadro de lista o cuadro combinado. Para un cuadro de lista vacío o un cuadro combinado, este miembro puede ser -1. Esto permite que la aplicación dibuje solo el rectángulo de foco en las coordenadas especificadas por el miembro rcItem aunque no haya elementos en el control. Esto indica al usuario si el cuadro de lista o el cuadro combinado tienen el foco. La forma en que se establecen los bits en el miembro itemAction determina si el rectángulo se va a dibujar como si el cuadro de lista o el cuadro combinado tengan el foco.

itemAction

Tipo: UINT

La acción de dibujo necesaria. Este miembro puede ser uno o varios de los valores.

Valor Significado
ODA_DRAWENTIRE
Es necesario dibujar todo el control.
ODA_FOCUS
El control ha perdido o obtenido el foco del teclado. El miembro itemState debe comprobarse para determinar si el control tiene el foco.
ODA_SELECT
El estado de selección ha cambiado. El miembro itemState debe comprobarse para determinar el nuevo estado de selección.

itemState

Tipo: UINT

El estado visual del elemento después de que la acción de dibujo actual haya tenido lugar. Este miembro puede ser una combinación de los valores que se muestran en la tabla siguiente.

Valor Significado
ODS_CHECKED
El elemento de menú se va a comprobar. Este bit sólo se usa en un menú.
ODS_COMBOBOXEDIT
El dibujo tiene lugar en el campo de selección (control de edición) de un cuadro combinado dibujado por el propietario.
ODS_DEFAULT
El elemento es el elemento predeterminado.
ODS_DISABLED
El elemento se va a dibujar como deshabilitado.
ODS_FOCUS
El elemento tiene el foco del teclado.
ODS_GRAYED
El elemento debe estar atenuado. Este bit sólo se usa en un menú.
ODS_HOTLIGHT
Se está realizando un seguimiento frecuente del elemento, es decir, el elemento se resaltará cuando el mouse esté en el elemento.
ODS_INACTIVE
El elemento está inactivo y la ventana asociada al menú está inactiva.
ODS_NOACCEL
El control se dibuja sin las indicaciones del acelerador de teclado.
ODS_NOFOCUSRECT
El control se dibuja sin indicaciones de indicador de foco.
ODS_SELECTED
El estado del elemento de menú está seleccionado.

hwndItem

Tipo: HWND

Identificador del control para cuadros combinados, cuadros de lista, botones y controles estáticos. En el caso de los menús, este miembro es un identificador del menú que contiene el elemento.

hDC

Tipo: HDC

Un identificador a un contexto de dispositivo; este contexto de dispositivo se debe usar al realizar operaciones de dibujo en el control.

rcItem

Tipo: RECT

Un rectángulo que define los límites del control que se va a dibujar. Este rectángulo se encuentra en el contexto del dispositivo especificado por el miembro hDC . El sistema recorta automáticamente todo lo que dibuja la ventana del propietario en el contexto del dispositivo para cuadros combinados, cuadros de lista y botones, pero no recorta elementos de menú. Al dibujar elementos de menú, la ventana del propietario no debe dibujar fuera de los límites del rectángulo definido por el miembro rcItem .

itemData

Tipo: ULONG_PTR

Valor definido por la aplicación asociado al elemento de menú. Para un control, este parámetro especifica el valor asignado por última vez al cuadro de lista o cuadro combinado por el LB_SETITEMDATA o CB_SETITEMDATA mensaje. Si el cuadro de lista o el cuadro combinado tiene el estilo LBS_HASSTRINGS o CBS_HASSTRINGS , este valor es inicialmente cero. De lo contrario, este valor es inicialmente el valor que se pasó al cuadro de lista o al cuadro combinado en el parámetro lParam de uno de los mensajes siguientes:

Si CtlType es ODT_BUTTON o ODT_STATIC, itemData es cero.

Comentarios

Algunos tipos de control, como barras de estado, no establecen el valor de CtlType.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado winuser.h (incluir Windows.h)

Consulte también

CB_ADDSTRING

CB_INSERTSTRING

CB_SETITEMDATA

LB_ADDSTRING

LB_INSERTSTRING

LB_SETITEMDATA

Referencia

WM_DRAWITEM