protected:
     virtual wxSize DoGetBestSize() const;
 
+    virtual WXHBRUSH MSWGetBgBrushForSelf(wxWindow *parent, WXHDC hDC);
+
 private:
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxStaticBox)
 };
 
 #include "wx/statbox.h"
 
 #include "wx/msw/private.h"
+#include "wx/msw/notebook.h"
 
 // ----------------------------------------------------------------------------
 // wxWin macros
     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