commctrl.h

Estructura NMCUSTOMDRAW

Definición

typedef struct tagNMCUSTOMDRAWINFO {
  NMHDR     hdr;
  DWORD     dwDrawStage;
  HDC       hdc;
  RECT      rc;
  DWORD_PTR dwItemSpec;
  UINT      uItemState;
  LPARAM    lItemlParam;
} NMCUSTOMDRAW, *LPNMCUSTOMDRAW;

Contiene información específica para un código de notificación NM_CUSTOMDRAW.

Descripción

hdr
Una estructura NMHDR que contiene información sobre el código de notificación.
dwDrawStage
La etapa de dibujado actual. Este parámetro puede tener uno de los siguientes valores:
Valor Significado
Valores globales:  
CDDS_POSTERASE Termina después del ciclo de borrado.
CDDS_POSTPAINT Termina después del ciclo de pintado.
CDDS_PREERASE Comienza antes del ciclo de borrado.
CDDS_PREPAINT Comienza antes del ciclo de pintado.
Valores específicos de ítem:  
CDDS_ITEM Indica que los miembros dwItemSpec, uItemState, y lItemlParam son válidos.
CDDS_ITEMPOSTERASE Después de que un ítem ha sido borrado.
CDDS_ITEMPOSTPAINT Después de que un ítem ha sido dibujado.
CDDS_ITEMPREERASE Antes de que un ítem sea borrado.
CDDS_ITEMPREPAINT Antes de que un ítem sea dibujado.
CDDS_SUBITEM Versión 4.71. Bandera combinada con CDDS_ITEMPREPAINT o CDDS_ITEMPOSTPAINT si un subítem está siendo dibujado. Este sólo será asignado su se retorna CDRF_NOTIFYITEMDRAW desde CDDS_PREPAINT.
hdc
Un manipulador al contexto de dispositivo del control. Usar este HDC para llevar a cabo cualquier función GDI.
rc
Estructura RECT que describe el rectángulo delimitador del área que se está dibujando. Este miembro es inicializado sólo por la notificación CDDS_ITEMPREPAINT. Desde la versión 5.80, este miembro también es inicializado por la notificación CDDS_PREPAINT.
dwItemSpec
El número de ítem. Lo que contenga este miembro dependerá del tipo de control que está enviando la notificación. Ver la referencia de la notificación NM_CUSTOMDRAW para el control específico para determinar qué, si hay algo, contiene este meimbro.
uItemState
El estado actual del ítem. Este valor es una combinación de las siguientes banderas.
Valor Significado
CDIS_CHECKED El ítem está marcado (checked).
CDIS_DEFAULT El ítem está en su estado por defecto.
CDIS_DISABLED El ítem está deshabilitado.
CDIS_FOCUS El ítem tiene el foco.
CDIS_GRAYED El ítem está inhibido (grayed).
CDIS_HOT El ítem está actualmenta bajo el puntero ("hot").
CDIS_INDETERMINATE El ítem está en un estado indeterminado.
CDIS_MARKED El ítem está marcado. El significado de esta marca se determina por la implementación.
CDIS_SELECTED El ítem está seleccionado.

Nota: esta bandera no funciona correctamente para controles list-view owner-draw que tengan el estilo LVS_SHOWSELALWAYS. Para esos controles, se puede determinar si un ítem está seleccionado usando LVM_GETITEMSTATE (o ListView_GetItemState) y verificando la bandera LVIS_SELECTED.

CDIS_SHOWKEYBOARDCUES Versión 6.0. El ítem está mostrando sus señales de teclado.

Tener en cuenta que la versión 6 de Comctl32 no es redistribuible, pero está incluida con la versión Windows XP o sistemas operativos posteriores. Para usar la versión 6 de Comctl32.dll, especificarla en el manifiesto.

CDIS_NEARHOT El ítem es parte de un control que está actualmente bajo el puntero del ratón ("hot"), pero el ítem no est'a "hot". El significado de esto se determina por la implementación.
CDIS_OTHERSIDEHOT El ítem es parte de un splitbutton que está actualmente bajo el puntero del ratón ("hot"), pero el propio ítem no está "hot". El significado de esto depende de la implementación.
CDIS_DROPHILITED El ítem es actualmente el objetivo de un arrastre en una operación de drag-and-drop.
lItemlParam
Dato de ítem definido por la aplicación.

Observaciones

El valor que la aplicación retorna depende de la etapa actual de dibujado. El meimbro dwDrawStage de la estructura NMCUSTOMDRAW asociada mantiene un valor que especifica la etapa de dibujado. Cuando el miembro dwDrawStage es igual a CDDS_PREPAINT y CDDS_PREERASE, algunos controles envían el mensaje CDDS_PREERASE preimero y esperan el valor de retorno que indique que mensajes subsiguientes serán enviados.