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 |
|
Vedi anche
-
Altre risorse