A ClientDC must be constructed if an application wishes to paint on the client area of a window from outside an EVT_PAINT() handler.
This should normally be constructed as a temporary stack object; don’t store a ClientDC object.
To draw on a window from within an EVT_PAINT() handler, construct a PaintDC object instead.
To draw on the whole window including decorations, construct a WindowDC object (Windows only).
A ClientDC object is initialized to use the same font and colours as the window it is associated with.