Compartir a través de


WM_CTLCOLORBTN mensaje

El WM_CTLCOLORBTN mensaje se envía a la ventana primaria de un botón antes de dibujar el botón. La ventana primaria puede cambiar los colores de fondo y texto del botón. Sin embargo, solo los botones dibujados por el propietario responden a la ventana primaria que procesa este mensaje.

WM_CTLCOLORBTN

    WPARAM wParam;
    LPARAM lParam; 

Parámetros

wParam

HdC que especifica el identificador para el contexto de presentación del botón.

lParam

HWND que especifica el identificador del botón.

Valor devuelto

Si una aplicación procesa este mensaje, debe devolver un identificador a un pincel. El sistema usa el pincel para pintar el fondo del botón.

Comentarios

Si la aplicación devuelve un pincel que creó (por ejemplo, mediante la función CreateSolidBrush o CreateBrushIndirect ), la aplicación debe liberar el pincel. Si la aplicación devuelve un pincel del sistema (por ejemplo, uno recuperado por la función GetStockObject o GetSysColorBrush ), la aplicación no necesita liberar el pincel.

De forma predeterminada, la función DefWindowProc selecciona los colores del sistema predeterminados para el botón. Los botones con los estilos BS_PUSHBUTTON, BS_DEFPUSHBUTTON o BS_PUSHLIKE no usan el pincel devuelto. Los botones con estos estilos siempre se dibujan con los colores predeterminados del sistema. Los botones de inserción de dibujo requieren varios pinceles diferentes, resaltado y sombra, pero el mensaje de WM_CTLCOLORBTN solo permite devolver un pincel. Para proporcionar una apariencia personalizada para los botones de inserción, use un botón dibujado por el propietario. Para obtener más información, vea Creating Owner-Drawn Controls.

El mensaje WM_CTLCOLORBTN nunca se envía entre subprocesos. Solo se envía dentro de un subproceso.

El color de texto de una casilla o un botón de radio se aplica a la casilla o al botón, su marca de verificación y el texto. El rectángulo de foco de estos botones sigue siendo el color predeterminado del sistema (normalmente negro). El color de texto de un cuadro de grupo se aplica al texto, pero no a la línea que define el cuadro. El color de texto de un botón de pulsación solo se aplica a su rectángulo de foco; no afecta al color del texto.

Si un procedimiento de cuadro de diálogo controla este mensaje, debe convertir el valor devuelto deseado en un INT_PTR y devolver el valor directamente. Si el procedimiento del cuadro de diálogo devuelve FALSE, se realiza el control de mensajes predeterminado. Se omite el valor de DWL_MSGRESULT establecido por la función SetWindowLong .

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado
Winuser.h (incluye Windows.h)

Consulte también

Otros recursos

RealizePalette

SelectPalette