Condividi tramite


messaggio WM_CTLCOLORBTN

Il messaggio WM_CTLCOLORBTN viene inviato alla finestra padre di un pulsante prima di disegnare il pulsante. La finestra padre può modificare il testo e i colori di sfondo del pulsante. Tuttavia, solo i pulsanti creati dal proprietario rispondono all'elaborazione del messaggio nella finestra padre.

WM_CTLCOLORBTN

    WPARAM wParam;
    LPARAM lParam; 

Parametri

wParam

HDC che specifica l'handle per il contesto di visualizzazione per il pulsante.

lParam

Oggetto HWND che specifica l'handle per il pulsante.

Valore restituito

Se un'applicazione elabora questo messaggio, deve restituire un handle a un pennello. Il sistema usa il pennello per disegnare lo sfondo del pulsante.

Commenti

Se l'applicazione restituisce un pennello creato, ad esempio usando la funzione CreateSolidBrush o CreateBrushIndirect , l'applicazione deve liberare il pennello. Se l'applicazione restituisce un pennello di sistema ,ad esempio uno recuperato dalla funzione GetStockObject o GetSysColorBrush , l'applicazione non deve liberare il pennello.

Per impostazione predefinita, la funzione DefWindowProc seleziona i colori di sistema predefiniti per il pulsante. I pulsanti con gli stili BS_PUSHBUTTON, BS_DEFPUSHBUTTON o BS_PUSHLIKE non usano il pennello restituito. I pulsanti con questi stili vengono sempre disegnati con i colori di sistema predefiniti. I pulsanti di disegno richiedono diversi pennelli, evidenziazione e ombreggiatura, ma il messaggio WM_CTLCOLORBTN consente la restituzione di un solo pennello. Per fornire un aspetto personalizzato per i pulsanti di scelta, usare un pulsante disegnato dal proprietario. Per altre informazioni, vedere Creazione di controlli Owner-Drawn.

Il messaggio WM_CTLCOLORBTN non viene mai inviato tra thread. Viene inviato solo all'interno di un thread.

Il colore del testo di una casella di controllo o di un pulsante di opzione si applica alla casella o al pulsante, al segno di spunta e al testo. Il rettangolo di attivazione per questi pulsanti rimane il colore predefinito del sistema (in genere nero). Il colore del testo di una casella di gruppo si applica al testo, ma non alla riga che definisce la casella. Il colore del testo di un pulsante di pressione si applica solo al relativo rettangolo di messa a fuoco; non influisce sul colore del testo.

Se una routine della finestra di dialogo gestisce questo messaggio, deve eseguire il cast del valore restituito desiderato in un INT_PTR e restituire direttamente il valore. Se la procedura della finestra di dialogo restituisce FALSE, viene eseguita la gestione predefinita dei messaggi. Il valore DWL_MSGRESULT impostato dalla funzione SetWindowLong viene ignorato.

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista [solo app desktop]
Server minimo supportato
Windows Server 2003 [solo app desktop]
Intestazione
Winuser.h (include Windows.h)

Vedi anche

Altre risorse

RealizePalette

SelezionaPalette