commctrl.h

Mensaje de notificación NM_CUSTOMDRAW

Definición

NM_CUSTOMDRAW  
lpNMCustomDraw = (LPNMTTCUSTOMDRAW) lParam;

Este mensaje de notificación puede ser enviado por varios controles.

Enviado por un control tooltip o un control de cabecera o list-view para notificar a su ventana padre sobre operaciones de dibujado.

Enviado por un control trackbar para notificar a su ventana padre sobre tareas de dibujado.

Este código de notificación es enviado en el formato de un mensaje WM_NOTIFY.

Descripción

lpNMCustomDraw

Puntero a una estructura NMTTCUSTOMDRAW que contiene información sobre la operación de dibujado.

En el caso de un control de cabecera, el miembro dwItemSpec de esta estructura contiene el índice del ítem que está siendo dibujado y el miembro lItemlParam member contiene el lParam del ítem.

Los controles Trackbar insertan los siguientes valores en el miembro dwItemSpec de esta estructura para identificar la porción del control a dibujar:

ValorSignificado
TBCD_CHANNELIdentifica el canal sobre el que el deslizador del trackbar se desplaza.
TBCD_THUMBIdentifica el marcador del control del trackbar. Esta es la porción del control que mueve el usuario.
TBCD_TICSIdentifica las marcas de incremento que aparecen a lo largo del borde del control trackbar.

Para controles list-view, el miembro dwItemSpec de la estructura apuntada por nmcd contiene el identificador del ítem que se está dibujando y el miembro lItemlParam contiene el dato definido por la aplicación.

Valor de retorno

El valor que la aplicación puede devolver depende de la etapa de dibujo actual. El miembro dwDrawStage de la estructura NMCUSTOMDRAW asociada contiene un valor que especifica la etapa de dibujado. Se debe retornar uno de los siguientes valores:

Código de retorno Descripción
CDRF_DODEFAULT El control se dibujará por si mismo. No enviará ningún código NM_CUSTOMDRAW adicional para este ciclo de pintado. Esto ocurre cuando dwDrawStage es igual a CDDS_PREPAINT.
CDRF_DOERASE En Windows Vista. El control sólo pintará el fondo.
CDRF_NOTIFYITEMDRAW El control notificará a su padre de cualquier operación de dibujo relacionado con ítems. Enviará códigos de notificación NM_CUSTOMDRAW antes y después de dibujar ítems. Esto ocurre cuando dwDrawStage es igual a CDDS_PREPAINT.
CDRF_NOTIFYPOSTERASE El control notificará a su padre después de borrar un ítem. Esto ocurre cuando dwDrawStage es igual a CDDS_PREPAINT.
CDRF_NOTIFYPOSTPAINT El control notificará a su padre después de pintar un ítem. Esto ocurre cuando dwDrawStage es igual a CDDS_PREPAINT.
CDRF_NOTIFYSUBITEMDRAW Versión 4.71. El control notificará a su padre cuando un subítem de un list-view va a ser dibujado. Esto ocurre cuando dwDrawStage es igual a CDDS_PREPAINT.
CDRF_NEWFONT La aplicación especificará una nueva fuente para el ítem. El control usará la nueva fuenta. Esto ocurre cuando dwDrawStage es igual a CDDS_ITEMPREPAINT.
CDRF_SKIPDEFAULT La aplicación dibuja el ítem manualmente. El control no dibujará el ítem. Esto ocurre cuando dwDrawStage es igual a CDDS_ITEMPREPAINT.
CDRF_SKIPPOSTPAINT Windows Vista. El control no puntará el rectángulo del foco.

Observaciones

Versión 5.80. Si se cambia la fuente retornando CDRF_NEWFONT, el control puede mostrar el texto recortado. Este comportamiento es necesario por compatibilidad hacia atrás con versiones más antiguas del los controles comunes. Si se quiere cambiar la fuente de un control list-view, se obtendrán mejores resultados si se envía un mensaje CCM_SETVERSION con el valor 5 para wParam antes de añadir cualquier ítem al control.