diff --git a/src/msw/statbox.cpp b/src/msw/statbox.cpp index da28e527ff..9a08377074 100644 --- a/src/msw/statbox.cpp +++ b/src/msw/statbox.cpp @@ -143,24 +143,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;