2012-01-20 36 views
7

Pencerenin arka plan rengini elde etmek için herhangi bir işlev var mı (C++, MFC)?Pencerenin arka plan rengi al

+0

Herhangi bir pencerenin arka plan rengini mi yoksa pencerenin masaüstünü mi kastediyorsunuz? HbrBackground' için – dwo

cevap

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

Pencereler için varsayılan bir arka plan rengi vardır, GetSysColor (COLOR_WINDOW) kullanın. Ama nihayetinde bir pencere kendini 'arka plan' ve 'önalan' olan şeyin ne olduğuna karar verir. WNDCLASS.hbrBackground ve pencerenin WM_ERASEBKGND ve WM_PAINT ileti işleyicileri tarafından etkilenir. Herşey mümkün.

+0

+1. Bu zorunlu olarak ayarlanmamıştır, ancak bu durumda arka plan renginin mevcut olup olmadığını merak etmeniz gerekir. (Ör. Saydam pencereler ve benzerleri) – MSalters

+0

Varsayılan OnCtlColor davranışı geçersiz kılınmışsa, WM_CTL_COLOR iletisinden de etkilenebilir. – sergiol