2012-01-20 21 views
7

Czy istnieje jakaś funkcja (C++, MFC), aby uzyskać kolor tła okna?Pobierz kolor tła okna

+0

Czy masz na myśli kolor tła dowolnego okna lub pulpitu systemu Windows? – dwo

Odpowiedz

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

Istnieje domyślny kolor tła dla okien, użyj GetSysColor (COLOR_WINDOW). Ale ostatecznie okno decyduje o tym, co jest "tłem", a co "na pierwszym planie". Wpływ na WNDCLASS.hbrBackground i funkcje obsługi wiadomości WM_ERASEBKGND i WM_PAINT. Wszystko jest możliwe.

+0

+1 dla 'hbrBackground'. Niekoniecznie jest ustawiony, ale w takim przypadku trzeba się zastanawiać, czy kolor tła istnieje. (Np. Przezroczyste okna i tym podobne) – MSalters

+0

Komunikat WM_CTL_COLOR może mieć również wpływ, jeśli domyślne zachowanie OnCtlColor zostało przesłonięte. – sergiol