diff --git a/src/msw/treectrl.cpp b/src/msw/treectrl.cpp index df434131aa..d358be2f32 100644 --- a/src/msw/treectrl.cpp +++ b/src/msw/treectrl.cpp @@ -734,10 +734,6 @@ bool wxTreeCtrl::Create(wxWindow *parent, if ( !MSWCreateControl(WC_TREEVIEW, wstyle, pos, size) ) return false; - // this significantly reduces flicker when refreshing the control, for some - // reason the native control itself doesn't avoid background repainting - SetBackgroundStyle(wxBG_STYLE_CUSTOM); - #if wxUSE_COMCTL32_SAFELY wxWindow::SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW)); wxWindow::SetForegroundColour(wxWindow::GetParent()->GetForegroundColour()); diff --git a/src/msw/window.cpp b/src/msw/window.cpp index e808841ca4..3707a1bad7 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -4722,14 +4722,6 @@ bool wxWindowMSW::HandleEraseBkgnd(WXHDC hdc) void wxWindowMSW::OnEraseBackground(wxEraseEvent& event) { - if ( GetBackgroundStyle() == wxBG_STYLE_CUSTOM ) - { - // don't skip the event here, custom background means that the app - // is drawing it itself in its OnPaint(), so don't draw it at all - // now to avoid flicker - return; - } - // standard non top level controls (i.e. except the dialogs) always erase // their background themselves in HandleCtlColor() or have some control- // specific ways to set the colours (common controls) @@ -4739,6 +4731,14 @@ void wxWindowMSW::OnEraseBackground(wxEraseEvent& event) return; } + if ( GetBackgroundStyle() == wxBG_STYLE_CUSTOM ) + { + // don't skip the event here, custom background means that the app + // is drawing it itself in its OnPaint(), so don't draw it at all + // now to avoid flicker + return; + } + wxDC *dc = event.GetDC(); if (!dc) return; wxMSWDCImpl *impl = (wxMSWDCImpl*) dc->GetImpl();