X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/55543363999a9fae0e2b7af98100cf494839bb03..884a37aed25b5cdabcc6f9f7604878aa97ecb031:/src/msw/control.cpp?ds=sidebyside diff --git a/src/msw/control.cpp b/src/msw/control.cpp index 304829225a..d32372b29f 100644 --- a/src/msw/control.cpp +++ b/src/msw/control.cpp @@ -335,7 +335,11 @@ WXHBRUSH wxControl::MSWControlColorSolid(WXHDC pDC, wxColour colBg) { HDC hdc = (HDC)pDC; if ( m_hasFgCol ) + { ::SetTextColor(hdc, wxColourToRGB(GetForegroundColour())); + if ( !colBg.Ok() ) + colBg = GetBackgroundColour(); + } if ( colBg.Ok() ) { @@ -358,44 +362,9 @@ WXHBRUSH wxControl::MSWControlColor(WXHDC pDC) ::SetBkMode((HDC)pDC, TRANSPARENT); - // check if we should adapt our background to our parent - for ( wxWindow *win = this; win; win = win->GetParent() ) - { - if ( win->IsTopLevel() ) - { - // don't go beyond the first top level parent - break; - } - - if ( win->GetBackgroundStyle() == wxBG_STYLE_COLOUR ) - { - // parent window has solid colour, so it doesn't look - // transparent and hence we shouldn't show notebook background - wxBrush *brush = wxTheBrushList->FindOrCreateBrush - ( - win->GetBackgroundColour(), - wxSOLID - ); - - return (WXHBRUSH)brush->GetResourceHandle(); - } - -#if wxUSE_UXTHEME && wxUSE_NOTEBOOK - // check for the special case of the notebooks which draw themed - // background when themes are enabled - wxNotebook *nbook = wxDynamicCast(win, wxNotebook); - if ( nbook ) - { - // return value may be NULL but it is ok: if the first parent - // notebook doesn't use themes, then we don't have to process - // this message at all, so let default processing take place - return nbook->GetThemeBackgroundBrush(pDC, this); - } -#endif // wxUSE_UXTHEME && wxUSE_NOTEBOOK - } + hbr = MSWGetBgBrush(pDC); - // let the control deal with background itself - return MSWGetDefaultBgBrush(); + return hbr ? hbr : MSWGetDefaultBgBrush(); } WXHBRUSH wxControl::MSWControlColorDisabled(WXHDC pDC)