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:
Valor Significado TBCD_CHANNEL Identifica el canal sobre el que el deslizador del trackbar se desplaza. TBCD_THUMB Identifica el marcador del control del trackbar. Esta es la porción del control que mueve el usuario. TBCD_TICS Identifica 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.