X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/75a2645e11fe191cc812cd768b61322456b5f8b8..908f91bce9bfe08204447ed7217a38625ecacc64:/src/msw/statbox.cpp diff --git a/src/msw/statbox.cpp b/src/msw/statbox.cpp index da28e527ff..e23f78abe1 100644 --- a/src/msw/statbox.cpp +++ b/src/msw/statbox.cpp @@ -42,6 +42,7 @@ #include "wx/dcmemory.h" #include "wx/msw/private.h" +#include "wx/msw/missing.h" // ---------------------------------------------------------------------------- // wxWin macros @@ -143,24 +144,23 @@ WXDWORD wxStaticBox::MSWGetStyle(long style, WXDWORD *exstyle) const if ( exstyle ) { - // If any of the ancestors are scrolling windows, style has to be WS_EX_TRANSPARENT - // or the static box won't be painted when the window is scrolled. We try - // not to do this normally, because we get a lot of flicker. - wxWindow* p = GetParent(); - bool ancestorScrolls = false; - while (p && !p->IsTopLevel()) + *exstyle = 0; + + // If any of the ancestors are scrolling windows, style has to be + // WS_EX_TRANSPARENT or the static box won't be painted when the window + // is scrolled. We try not to do this normally, because we get a lot of + // flicker. + for ( wxWindow *win = GetParent(); win; win = win->GetParent() ) { - if (p->HasFlag(wxVSCROLL) || GetParent()->HasFlag(wxHSCROLL)) + if ( win->HasFlag(wxVSCROLL) || win->HasFlag(wxHSCROLL) ) { - ancestorScrolls = true; + *exstyle = WS_EX_TRANSPARENT; break; } - p = p->GetParent(); + + if ( win->IsTopLevel() ) + break; } - if (ancestorScrolls) - *exstyle = WS_EX_TRANSPARENT; - else - *exstyle = 0; } return styleWin | BS_GROUPBOX; @@ -325,7 +325,7 @@ void wxStaticBox::PaintBackground(wxDC& dc, const RECT& rc) // 3. this is backwards compatible behaviour and some people rely on it, // see http://groups.google.com/groups?selm=4252E932.3080801%40able.es wxWindow *parent = GetParent(); - HBRUSH hbr = (HBRUSH)parent->MSWGetBgBrush(dc.GetHDC(), this); + HBRUSH hbr = (HBRUSH)parent->MSWGetBgBrush(dc.GetHDC(), GetHWND()); // if there is no special brush for painting this control, just use the // solid background colour