A wx.PaintDC must be constructed if an application wishes to paint on the client area of a window from within an EVT_PAINT() event handler.
This should normally be constructed as a temporary stack object; don’t store a wx.PaintDC object. If you have an EVT_PAINT() handler, you must create a wx.PaintDC object within it even if you don’t actually use it.
Using wx.PaintDC within your EVT_PAINT() handler is important because it automatically sets the clipping area to the damaged area of the window. Attempts to draw outside this area do not appear.
To draw on a window from outside your EVT_PAINT() handler, construct a wx.ClientDC object.
To draw on the whole window including decorations, construct a wx.WindowDC object (Windows only).
A wx.PaintDC object is initialized to use the same font and colours as the window it is associated with.
See also