Compartilhar via


WM_CTLCOLORBTN mensagem

A mensagem WM_CTLCOLORBTN é enviada para a janela pai de um botão antes de desenhar o botão. A janela pai pode alterar o texto do botão e as cores da tela de fundo. No entanto, somente os botões desenhados pelo proprietário respondem à janela pai que processa essa mensagem.

WM_CTLCOLORBTN

    WPARAM wParam;
    LPARAM lParam; 

Parâmetros

wParam

Um HDC que especifica o identificador para o contexto de exibição do botão.

lParam

Um HWND que especifica o identificador para o botão.

Valor retornado

Se um aplicativo processar essa mensagem, ele deverá retornar um identificador para um pincel. O sistema usa o pincel para pintar a tela de fundo do botão.

Comentários

Se o aplicativo retornar um pincel que ele criou (por exemplo, usando a função CreateSolidBrush ou CreateBrushIndirect ), o aplicativo deverá liberar o pincel. Se o aplicativo retornar um pincel do sistema (por exemplo, um que foi recuperado pela função GetStockObject ou GetSysColorBrush ), o aplicativo não precisará liberar o pincel.

Por padrão, a função DefWindowProc seleciona as cores padrão do sistema para o botão. Botões com os estilos BS_PUSHBUTTON, BS_DEFPUSHBUTTON ou BS_PUSHLIKE não usam o pincel retornado. Botões com esses estilos são sempre desenhados com as cores padrão do sistema. Desenhar botões de push requer vários pincéis, realce e sombra diferentes, mas a mensagem de WM_CTLCOLORBTN permite que apenas um pincel seja retornado. Para fornecer uma aparência personalizada para botões de push, use um botão desenhado pelo proprietário. Para obter mais informações, consulte Criando controles de Owner-Drawn.

A mensagem WM_CTLCOLORBTN nunca é enviada entre threads. Ele é enviado apenas dentro de um thread.

A cor do texto de uma caixa de marcar ou botão de opção se aplica à caixa ou botão, à marca marcar e ao texto. O retângulo de foco para esses botões continua sendo a cor padrão do sistema (normalmente preto). A cor do texto de uma caixa de grupo aplica-se ao texto, mas não à linha que define a caixa. A cor do texto de um botão de push aplica-se apenas ao retângulo de foco; não afeta a cor do texto.

Se um procedimento de caixa de diálogo manipular essa mensagem, ele deverá converter o valor retornado desejado em um INT_PTR e retornar o valor diretamente. Se o procedimento da caixa de diálogo retornar FALSE, o tratamento de mensagens padrão será executado. O valor DWL_MSGRESULT definido pela função SetWindowLong é ignorado.

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
Winuser.h (inclua Windows.h)

Confira também

Outros recursos

Realizepalette

SelectPalette