A wxPaintDC must be constructed if an application wishes to paint on the client area of a window from within an OnPaint event. This should normally be constructed as a temporary stack object; don't store a wxPaintDC object. If you have an OnPaint handler, you must create a wxPaintDC object within it even if you don't actually use it.
Using wxPaintDC within OnPaint 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 OnPaint, construct a wxClientDC object.
To draw on the whole window including decorations, construct a wxWindowDC object (Windows only).
wxDC, wxMemoryDC, wxPaintDC, wxWindowDC, wxScreenDC
Constructor. Pass a pointer to the window on which you wish to paint.