2012-01-20 22 views

risposta

5
CDC* pDc= GetDC(); 
COLORREF crBkgnd = pDc->GetBkColor(); 
6

C'è un colore di sfondo predefinito per Windows, utilizzare GetSysColor (COLOR_WINDOW). Ma alla fine una finestra decide da sola cosa è "sfondo" e cosa è "primo piano". Interessato da WNDCLASS.hbrBackground e dai gestori di messaggi WM_ERASEBKGND e WM_PAINT della finestra. Tutto è possibile.

+0

+1 per 'hbrBackground'. Non è necessariamente impostato, ma in questo caso ti devi chiedere se esiste anche un colore di sfondo. (Ad esempio finestre trasparenti e simili) – MSalters

+0

Può anche essere influenzato dal messaggio WM_CTL_COLOR se il comportamento predefinito di OnCtlColor è sovrascritto. – sergiol

Problemi correlati