diff --git a/src/msw/window.cpp b/src/msw/window.cpp index cf15c6ae66..a3a82351a4 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -4102,21 +4102,26 @@ void wxWindowMSW::OnEraseBackground(wxEraseEvent& event) // do default background painting - wxDC& dc = *event.GetDC(); - HBRUSH hBrush = (HBRUSH)MSWGetBgBrush(dc.GetHDC()); - if ( hBrush ) - { - RECT rc; - ::GetClientRect(GetHwnd(), &rc); - ::FillRect(GetHdcOf(dc), &rc, hBrush); - } - else + if ( !DoEraseBackground(*event.GetDC()) ) { // let the system paint the background event.Skip(); } } +bool wxWindowMSW::DoEraseBackground(wxDC& dc) +{ + HBRUSH hBrush = (HBRUSH)MSWGetBgBrush(dc.GetHDC()); + if ( !hBrush ) + return false; + + RECT rc; + ::GetClientRect(GetHwnd(), &rc); + ::FillRect(GetHdcOf(dc), &rc, hBrush); + + return true; +} + WXHBRUSH wxWindowMSW::MSWGetSolidBgBrushForChild(wxWindow *child) { wxColour col = MSWGetBgColourForChild(child);