X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/052da7d572c75d05207b53f515ed6623285dc841..c21f7aa162dfc4ff910c67a9d6241557dab96075:/include/wx/msw/subwin.h diff --git a/include/wx/msw/subwin.h b/include/wx/msw/subwin.h index c32cade9b8..cf149b7382 100644 --- a/include/wx/msw/subwin.h +++ b/include/wx/msw/subwin.h @@ -106,6 +106,9 @@ public: for ( size_t n = 0; n < m_count; n++ ) { ::SendMessage(m_hwnds[n], WM_SETFONT, (WPARAM)hfont, 0); + + // otherwise the window might not be redrawn correctly + ::InvalidateRect(m_hwnds[n], NULL, FALSE /* don't erase bg */); } } @@ -141,5 +144,52 @@ private: DECLARE_NO_COPY_CLASS(wxSubwindows) }; +// convenient macro to forward a few methods which are usually propagated to +// subwindows to a wxSubwindows object +// +// parameters should be: +// - cname the name of the class implementing these methods +// - base the name of its base class +// - subwins the name of the member variable of type wxSubwindows * +#define WX_FORWARD_STD_METHODS_TO_SUBWINDOWS(cname, base, subwins) \ + bool cname::ContainsHWND(WXHWND hWnd) const \ + { \ + return subwins && subwins->HasWindow((HWND)hWnd); \ + } \ + \ + bool cname::Show(bool show) \ + { \ + if ( !base::Show(show) ) \ + return false; \ + \ + if ( subwins ) \ + subwins->Show(show); \ + \ + return true; \ + } \ + \ + bool cname::Enable(bool enable) \ + { \ + if ( !base::Enable(enable) ) \ + return false; \ + \ + if ( subwins ) \ + subwins->Enable(enable); \ + \ + return true; \ + } \ + \ + bool cname::SetFont(const wxFont& font) \ + { \ + if ( !base::SetFont(font) ) \ + return false; \ + \ + if ( subwins ) \ + subwins->SetFont(font); \ + \ + return true; \ + } + + #endif // _WX_MSW_SUBWIN_H_