+ Sets the background style of the window.
+
+ The default background style is @c wxBG_STYLE_ERASE which indicates that
+ the window background may be erased in @c EVT_ERASE_BACKGROUND handler.
+ This is a safe, compatibility default; however you may want to change it
+ to @c wxBG_STYLE_SYSTEM if you don't define any erase background event
+ handlers at all, to avoid unnecessary generation of erase background
+ events and always let system erase the background. And you should
+ change the background style to @c wxBG_STYLE_PAINT if you define an
+ @c EVT_PAINT handler which completely overwrites the window background as
+ in this case erasing it previously, either in @c EVT_ERASE_BACKGROUND
+ handler or in the system default handler, would result in flicker as
+ the background pixels will be repainted twice every time the window is
+ redrawn. Do ensure that the background is entirely erased by your
+ @c EVT_PAINT handler in this case however as otherwise garbage may be left
+ on screen.
+
+ Notice that in previous versions of wxWidgets a common way to work
+ around the above mentioned flickering problem was to define an empty
+ @c EVT_ERASE_BACKGROUND handler. Setting background style to
+ @c wxBG_STYLE_PAINT is a simpler and more efficient solution to the same
+ problem.
+
+
+ Under wxGTK and wxOSX, you can use ::wxBG_STYLE_TRANSPARENT to obtain
+ full transparency of the window background. Note that wxGTK supports
+ this only since GTK 2.12 with a compositing manager enabled, call
+ IsTransparentBackgroundSupported() to check whether this is the case.
+
+ Also, on order for @c SetBackgroundStyle(wxBG_STYLE_TRANSPARENT) to
+ work, it must be called before Create(). If you're using your own
+ wxWindow-derived class you should write your code in the following way:
+ @code
+ class MyWidget : public wxWindow
+ {
+ public:
+ MyWidget(wxWindow* parent, ...)
+ : wxWindow() // Use default ctor here!
+ {
+ // Do this first:
+ SetBackgroundStyle(wxBG_STYLE_TRANSPARENT);
+
+ // And really create the window afterwards:
+ Create(parent, ...);
+ }
+ };
+ @endcode