NM_CUSTOMDRAW código de notificação

Notifica a janela pai de um controle sobre operações de desenho personalizadas. Esse código de notificação é enviado na forma de uma mensagem de WM_NOTIFY .

NM_CUSTOMDRAW

#ifdef LIST_VIEW_CUSTOM_DRAW

    lpNMCustomDraw = (LPNMLVCUSTOMDRAW) lParam;

#elif TOOL_TIPS_CUSTOM_DRAW

    lpNMCustomDraw = (LPNMTTCUSTOMDRAW) lParam;

#elif TREE_VIEW_CUSTOM_DRAW

    lpNMCustomDraw = (LPNMTVCUSTOMDRAW) lParam;

#elif TOOL_BAR_CUSTOM_DRAW

    lpNMCustomDraw = (LPNMTBCUSTOMDRAW) lParam;

#else

    lpNMCustomDraw = (LPNMCUSTOMDRAW) lParam;

#endif

Parâmetros

lParam

Um ponteiro para uma estrutura personalizada relacionada ao desenho que contém informações sobre a operação de desenho. A lista a seguir especifica os controles e suas estruturas associadas.

Control Estrutura de desenho personalizada
Rebar, trackbar e cabeçalho NMCUSTOMDRAW
Modo de exibição de lista NMLVCUSTOMDRAW
Dica de ferramenta NMTTCUSTOMDRAW
Exibição em árvore NMTVCUSTOMDRAW
Barra de ferramentas NMTBCUSTOMDRAW

Valor retornado

O valor que seu aplicativo pode retornar depende da fase de desenho atual. O membro dwDrawStage da estrutura NMCUSTOMDRAW associada contém um valor que especifica o estágio de desenho. Você deve retornar um dos valores a seguir.

Código de retorno Descrição
CDRF_DODEFAULT
O controle desenhará a si mesmo. Ele não enviará códigos de notificação de NM_CUSTOMDRAW adicionais para esse ciclo de pintura. Esse sinalizador não pode ser usado com nenhum outro sinalizador.
CDRF_DOERASE
O controle desenhará apenas a tela de fundo.
CDRF_NEWFONT
Seu aplicativo especificou uma nova fonte para o item; o controle usará a nova fonte. Para obter mais informações sobre como alterar fontes, consulte Alterando fontes e cores. Isso ocorre quando dwDrawStage é igual a CDDS_ITEMPREPAINT.
CDRF_NOTIFYITEMDRAW
O controle notificará o pai de quaisquer operações de desenho relacionadas a itens. Ele enviará NM_CUSTOMDRAW códigos de notificação antes e depois de desenhar itens. Isso ocorre quando dwDrawStage é igual a CDDS_PREPAINT.
CDRF_NOTIFYPOSTERASE
O controle notificará o pai depois de apagar um item. Isso ocorre quando dwDrawStage é igual a CDDS_PREPAINT.
CDRF_NOTIFYPOSTPAINT
O controle enviará um código de notificação NM_CUSTOMDRAW quando o ciclo de pintura de todo o controle for concluído. Isso ocorre quando dwDrawStage é igual a CDDS_PREPAINT.
CDRF_NOTIFYSUBITEMDRAW
Seu aplicativo receberá um código de notificação NM_CUSTOMDRAW com dwDrawStage definido como CDDS_ITEMPREPAINT | CDDS_SUBITEM antes de cada subitem de exibição de lista ser desenhado. Em seguida, você pode especificar fonte e cor para cada subitem separadamente ou retornar CDRF_DODEFAULT para processamento padrão. Isso ocorre quando dwDrawStage é igual a CDDS_ITEMPREPAINT.
CDRF_SKIPDEFAULT
Seu aplicativo desenhou o item manualmente. O controle não desenhará o item. Isso ocorre quando dwDrawStage é igual a CDDS_ITEMPREPAINT.
CDRF_SKIPPOSTPAINT
O controle não desenhará o retângulo de foco em torno de um item.

Comentários

Atualmente, os seguintes controles dão suporte à funcionalidade de desenho personalizada: cabeçalho, exibição de lista, barra de rebar, barra de ferramentas, dica de ferramenta, barra de controle e modo de exibição de árvore. O desenho personalizado também terá suporte para controles de botão se você tiver um manifesto do aplicativo para garantir que Comctl32.dll versão 6 esteja disponível.

Se essa mensagem for tratada em um procedimento de caixa de diálogo, você deverá definir o valor retornado como parte dos dados da janela antes de retornar TRUE. Para obter mais informações, consulte DialogProc.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho
Commctrl.h

Confira também

Conceitual

Desenho Personalizado