Version: 3.0.3
wxCustomBackgroundWindow< W > Class Template Reference

#include <wx/custombgwin.h>

+ Inheritance diagram for wxCustomBackgroundWindow< W >:

Detailed Description

template<class W>
class wxCustomBackgroundWindow< W >

A helper class making it possible to use custom background for any window.

wxWindow itself only provides SetBackgroundColour() method taking a (solid) wxColour. This class extends it by allowing to use custom bitmap backgrounds with any window, provided that you inherit from it. Notice that the usual rule of not interfering with event handling or painting of native controls still applies, so you shouldn't try to use custom backgrounds with classes such as wxButton (even if this might work on some platforms, it's not guaranteed to work in general). But you can use this class in conjunction with wxWindow, wxPanel, wxFrame and other similar classes, e.g. the erase sample shows how to use it with wxScrolledWindow:

#include "wx/custombgwin.h"
class MyCanvas : public wxCustomBackgroundWindow<wxScrolledWindow>
{
public:
MyCanvas(wxWindow* parent)
{
// Notice that we must explicitly call base class Create()
// instead of using its ctor as wxCustomBackgroundWindow
// doesn't define any non-default ctors.
Create(parent, wxID_ANY);
...
}
};
Category:  Miscellaneous Windows
Since
2.9.3

Public Member Functions

 wxCustomBackgroundWindow ()
 Trivial default constructor. More...
 
void SetBackgroundBitmap (const wxBitmap &bmp)
 Set the background bitmap for this window. More...
 

Constructor & Destructor Documentation

template<class W >
wxCustomBackgroundWindow< W >::wxCustomBackgroundWindow ( )

Trivial default constructor.

Member Function Documentation

template<class W >
void wxCustomBackgroundWindow< W >::SetBackgroundBitmap ( const wxBitmap bmp)

Set the background bitmap for this window.

If bmp is a valid bitmap, this bitmap will be tiled over the panel background and show through any of its transparent children. Passing an invalid bitmap reverts to the default background appearance.

Notice that you must not prevent the base class EVT_ERASE_BACKGROUND handler from running (i.e. not to handle this event yourself) for this to work.