diff --git a/include/wx/msw/toolbar.h b/include/wx/msw/toolbar.h index 2177278812..ce467dad50 100644 --- a/include/wx/msw/toolbar.h +++ b/include/wx/msw/toolbar.h @@ -116,7 +116,9 @@ protected: // handlers for various events bool HandleSize(WXWPARAM wParam, WXLPARAM lParam); +#ifndef __WXWINCE__ bool HandlePaint(WXWPARAM wParam, WXLPARAM lParam); +#endif // __WXWINCE__ void HandleMouseMove(WXWPARAM wParam, WXLPARAM lParam); // should be called whenever the toolbar size changes diff --git a/src/msw/toolbar.cpp b/src/msw/toolbar.cpp index 33c4950b30..58490dcdc7 100644 --- a/src/msw/toolbar.cpp +++ b/src/msw/toolbar.cpp @@ -1859,12 +1859,14 @@ WXLRESULT wxToolBar::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam #ifndef __WXWINCE__ case WM_PAINT: - if ( HandlePaint(wParam, lParam) ) + // refreshing the controls in the toolbar inside a composite window + // results in an endless stream of WM_PAINT messages -- and seems + // to be unnecessary anyhow as everything works just fine without + // any special workarounds in this case + if ( !IsDoubleBuffered() && HandlePaint(wParam, lParam) ) return 0; -#endif - - default: break; +#endif // __WXWINCE__ } return wxControl::MSWWindowProc(nMsg, wParam, lParam);