X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e7092398891c83b12c84305d8d0206bdbe415fa0..cd15bcaf50ead53ccf9d50965312f0dc754affb4:/samples/erase/erase.cpp diff --git a/samples/erase/erase.cpp b/samples/erase/erase.cpp index eb54c2ede3..37fc81bb88 100644 --- a/samples/erase/erase.cpp +++ b/samples/erase/erase.cpp @@ -362,10 +362,16 @@ MyCanvas::MyCanvas(wxFrame *parent) void MyCanvas::DoPaint(wxDC& dc) { + PrepareDC(dc); + if ( m_eraseBgInPaint ) { dc.SetBackground(*wxLIGHT_GREY); - dc.Clear(); + + // Erase the entire virtual area, not just the client area. + dc.SetPen(*wxTRANSPARENT_PEN); + dc.SetBrush(GetBackgroundColour()); + dc.DrawRectangle(GetVirtualSize()); dc.DrawText("Background erased in OnPaint", 65, 110); } @@ -387,15 +393,11 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) ) if ( m_useBuffer ) { wxAutoBufferedPaintDC dc(this); - PrepareDC(dc); - DoPaint(dc); } else { wxPaintDC dc(this); - PrepareDC(dc); - DoPaint(dc); } } @@ -419,12 +421,12 @@ void MyCanvas::OnEraseBackground( wxEraseEvent& event ) wxDC& dc = *event.GetDC(); dc.SetPen(*wxGREEN_PEN); - PrepareDC( dc ); - // clear any junk currently displayed dc.Clear(); - const wxSize size = GetClientSize(); + PrepareDC( dc ); + + const wxSize size = GetVirtualSize(); for ( int x = 0; x < size.x; x += 15 ) { dc.DrawLine(x, 0, x, size.y);