Compartir a través de


Estructura NMCUSTOMDRAW (commctrl.h)

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

Sintaxis

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

Miembros

hdr

Tipo: NMHDR

Estructura NMHDR que contiene información sobre este código de notificación.

dwDrawStage

Tipo: DWORD

Fase de dibujo actual. Se trata de uno de los siguientes valores.

Valor Significado
Valores globales:
CDDS_POSTERASE
Una vez completado el ciclo de borrado.
CDDS_POSTPAINT
Una vez completado el ciclo de pintura.
CDDS_PREERASE
Antes de que comience el ciclo de borrado.
CDDS_PREPAINT
Antes de que comience el ciclo de pintura.
Valores específicos del elemento:
CDDS_ITEM
Indica que los miembros dwItemSpec, uItemState y lItemlParam son válidos.
CDDS_ITEMPOSTERASE
Después de borrar un elemento.
CDDS_ITEMPOSTPAINT
Después de dibujar un elemento.
CDDS_ITEMPREERASE
Antes de borrar un elemento.
CDDS_ITEMPREPAINT
Antes de dibujar un elemento.
CDDS_SUBITEM
Marca combinada con CDDS_ITEMPREPAINT o CDDS_ITEMPOSTPAINT si se dibuja un subelemento. Esto solo se establecerá si CDRF_NOTIFYITEMDRAW se devuelve de CDDS_PREPAINT.

hdc

Tipo: HDC

Identificador del contexto del dispositivo del control. Use esta HDC para realizar cualquier función GDI.

rc

Tipo: RECT

Estructura RECT que describe el rectángulo delimitador del área que se va a dibujar. Este miembro solo se inicializa mediante la notificación de CDDS_ITEMPREPAINT. Versión 5.80. Este miembro también se inicializa mediante la notificación de CDDS_PREPAINT.

dwItemSpec

Tipo: DWORD_PTR

Número de elemento. Lo que se incluye en este miembro dependerá del tipo de control que envía la notificación. Consulte la referencia de notificación de NM_CUSTOMDRAW para el control específico para determinar qué, si hay algo, en este miembro.

uItemState

Tipo: UINT

Estado actual del elemento. Este valor es una combinación de las marcas siguientes.

Valor Significado
CDIS_CHECKED
El elemento está activado.
CDIS_DEFAULT
El elemento está en su estado predeterminado.
CDIS_DISABLED
El elemento está deshabilitado.
CDIS_FOCUS
El elemento está en el foco.
CDIS_GRAYED
El elemento está atenuado.
CDIS_HOT
El elemento está actualmente bajo el puntero ("frecuente").
CDIS_INDETERMINATE
El elemento está en un estado indeterminado.
CDIS_MARKED
El elemento está marcado. El significado de esto viene determinado por la implementación.
CDIS_SELECTED
El elemento está seleccionado.
Nota Esta marca no funciona correctamente para los controles de vista de lista dibujados por el propietario que tienen el estilo LVS_SHOWSELALWAYS . Para estos controles, puede determinar si un elemento está seleccionado mediante LVM_GETITEMSTATE (o ListView_GetItemState) y comprobar la marca de LVIS_SELECTED .
 
CDIS_SHOWKEYBOARDCUES

Versión 6.0.El elemento muestra sus indicaciones de teclado.

Tenga en cuenta que Comctl32 versión 6 no es redistribuible. sistemas operativos. Para usar Comctl32.dll versión 6, especifíquelo en el manifiesto. Para obtener más información sobre los manifiestos, consulte Habilitación de estilos visuales.

CDIS_NEARHOT
El elemento forma parte de un control que está actualmente bajo el puntero del mouse ("activo"), pero el elemento no es "frecuente". El significado de esto viene determinado por la implementación.
CDIS_OTHERSIDEHOT
El elemento forma parte de un botón de división que está actualmente bajo el puntero del mouse ("activo"), pero el elemento no es "frecuente". El significado de esto viene determinado por la implementación.
CDIS_DROPHILITED
El elemento es actualmente el destino de colocación de una operación de arrastrar y colocar.

lItemlParam

Tipo: LPARAM

Datos de elementos definidos por la aplicación.

Comentarios

El valor que devuelve la aplicación depende de la fase de dibujo actual. El miembro dwDrawStage de la estructura NMCUSTOMDRAW asociada contiene un valor que especifica la fase de dibujo. Cuando el miembro dwDrawStage es igual a CDDS_PREPAINT y CDDS_PREERASE, algunos controles envían primero el mensaje CDDS_PREERASE y esperan que el valor devuelto indique qué mensajes posteriores se enviarán. Para obtener un ejemplo de código que muestre los estados y las fases de dibujo, consulte Personalización de la apariencia de un control mediante dibujo personalizado.

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado commctrl.h