Okay.. actually reading the docs on wxAutoBufferedDC reveals this snippet of useful information :
"This wxDC derivative can be used inside of an OnPaint() event handler to achieve double-buffered drawing. Just create an object of this class instead of wxPaintDC and make sure wxWindow::SetBackgroundStyle is called with wxBG_STYLE_CUSTOM somewhere in the class initialization code, and that's all you have to do to (mostly) avoid flicker.
"
Add this to the OnInit() of your custom panel.
Seems to help a bit.
"This wxDC derivative can be used inside of an OnPaint() event handler to achieve double-buffered drawing. Just create an object of this class instead of wxPaintDC and make sure wxWindow::SetBackgroundStyle is called with wxBG_STYLE_CUSTOM somewhere in the class initialization code, and that's all you have to do to (mostly) avoid flicker.
"
Add this to the OnInit() of your custom panel.
SetBackgroundStyle(wxBG_STYLE_CUSTOM)
Seems to help a bit.