wxBufferedDC and wxAutoBufferedPaintDC might help you. Try bufferred DCs, they are necessary on some platforms.Do not store the created DC or keep it for later in any way.If a wxPaintDC object isn't created, the event isn't correctly handled which can cause weird behavior. If you do catch the paint event, you must create a wxPaintDC in it, even if you don't use it.Use a wxPaintDC in paint events, and a wxClientDC outside paint events.When something needs to change, don't render it straight ahead instead, update the variables and call for a repaint - if well-coded, your paint routine should catch the change). (The render routine reads variables describing current state and draws according to these variables. The best way to deal with this is to separate state/data from view.This is because your window manager may throw away your drawing at any time and ask you to draw it again later through a paint event. You need to handle the paint event, and it must be able to redraw the whole drawing at any time.#include 'wx/wx.h' #include 'wx/sizer.h' class BasicDrawPane : public wxPanel Important Notes