diff --git a/include/wx/msw/window.h b/include/wx/msw/window.h index 6bdc49db2a..25abce27c7 100644 --- a/include/wx/msw/window.h +++ b/include/wx/msw/window.h @@ -90,6 +90,8 @@ public: const wxRect *rect = (const wxRect *) NULL ); virtual void Update(); virtual void Clear(); + virtual void Freeze(); + virtual void Thaw(); virtual bool SetCursor( const wxCursor &cursor ); virtual bool SetFont( const wxFont &font ); diff --git a/src/msw/window.cpp b/src/msw/window.cpp index 49f54984e1..7bbf3ce5cd 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -1194,6 +1194,21 @@ void wxWindowMSW::Clear() dc.Clear(); } +static inline void SendSetRedraw(HWND hwnd, bool on) +{ + ::SendMessage(hwnd, WM_SETREDRAW, (WPARAM)on, 0); +} + +void wxWindowMSW::Freeze() +{ + SendSetRedraw(FALSE); +} + +void wxWindowMSW::Thaw() +{ + SendSetRedraw(TRUE); +} + void wxWindowMSW::Refresh(bool eraseBack, const wxRect *rect) { HWND hWnd = GetHwnd();