2012-01-20 37 views
7

ウィンドウの背景色を取得する関数(C++、MFC)はありますか?ウィンドウの背景色を取得する

+0

どのウィンドウやウィンドウのデスクトップの背景色を意味しますか? 'hbrBackground'には – dwo

答えて

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

Windowsのデフォルトの背景色は、GetSysColor(COLOR_WINDOW)です。しかし最終的には、「背景」と「前景」とは何かを決定するウィンドウがあります。 WNDCLASS.hbrBackgroundとウィンドウのWM_ERASEBKGNDおよびWM_PAINTメッセージハンドラの影響を受けます。何でも可能です。

+0

+1です。必ずしも設定されているわけではありませんが、この場合、背景色が存在するかどうか疑問に思う必要があります。 (たとえば透明なウィンドウなど) – MSalters

+0

デフォルトのOnCtlColorビヘイビアをオーバーライドすると、WM_CTL_COLORメッセージの影響を受けることもあります。 – sergiol

関連する問題