From: Vadim Zeitlin Date: Mon, 13 Dec 2004 00:12:37 +0000 (+0000) Subject: use solid bacgkround for static box as pattern brush can't be properly aligned when... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/b04093c949b167780465008be80b273b25c28e3a use solid bacgkround for static box as pattern brush can't be properly aligned when it is painted git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30978 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/msw/statbox.h b/include/wx/msw/statbox.h index 06956d91b5..4109ac7a19 100644 --- a/include/wx/msw/statbox.h +++ b/include/wx/msw/statbox.h @@ -42,6 +42,8 @@ public: protected: virtual wxSize DoGetBestSize() const; + virtual WXHBRUSH MSWGetBgBrushForSelf(wxWindow *parent, WXHDC hDC); + private: DECLARE_DYNAMIC_CLASS_NO_COPY(wxStaticBox) }; diff --git a/src/msw/statbox.cpp b/src/msw/statbox.cpp index 672b7eb6ff..4173fcfee6 100644 --- a/src/msw/statbox.cpp +++ b/src/msw/statbox.cpp @@ -38,6 +38,7 @@ #include "wx/statbox.h" #include "wx/msw/private.h" +#include "wx/msw/notebook.h" // ---------------------------------------------------------------------------- // wxWin macros @@ -134,4 +135,18 @@ wxSize wxStaticBox::DoGetBestSize() const return wxSize(wBox, hBox); } +WXHBRUSH +wxStaticBox::MSWGetBgBrushForSelf(wxWindow *parent, WXHDC WXUNUSED(pDC)) +{ + // we can't use pattern brushes because, apparently, the window proc of our + // class does something which invalidates the brush origin before drawing + // with it and so any patetrn brush is used incorrectly as can be seen by + // putting a static box inside a (themed) notebook + // + // so always use solid brush for painting the background (note that this + // only applies to the background of the box label, not the insides of the + // box itself) + return parent->MSWGetSolidBgBrushForChild(this); +} + #endif // wxUSE_STATBOX