#endif
#include "wx/statbox.h"
+#include "wx/notebook.h"
#include "wx/msw/private.h"
+// under CE this style is not defined but we don't need to make static boxes
+// transparent there neither
+#ifndef WS_EX_TRANSPARENT
+ #define WS_EX_TRANSPARENT 0
+#endif
+
// ----------------------------------------------------------------------------
// wxWin macros
// ----------------------------------------------------------------------------
if ( !CreateControl(parent, id, pos, size, style, wxDefaultValidator, name) )
return false;
- if ( !MSWCreateControl(wxT("BUTTON"), BS_GROUPBOX, pos, size, label, 0) )
+ if ( !MSWCreateControl(wxT("BUTTON"), label, pos, size) )
return false;
return true;
}
+WXDWORD wxStaticBox::MSWGetStyle(long style, WXDWORD *exstyle) const
+{
+ long styleWin = wxStaticBoxBase::MSWGetStyle(style, exstyle);
+
+ if ( exstyle )
+ *exstyle = WS_EX_TRANSPARENT;
+
+ return styleWin | BS_GROUPBOX;
+}
+
wxSize wxStaticBox::DoGetBestSize() const
{
int cx, cy;
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