Don't use bitmap still selected in wxMemoryDC in image sample.

The bitmap must be deselected from wxMemoryDC before being used in any other
way but the sample didn't do this. Fix this by simply destroying the DC as
soon as we don't need it, this makes bitmap available for other use as well.

Closes #12310.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2010-08-10 18:57:47 +00:00
parent 5784031727
commit 5ed0415e3e

View File

@ -641,22 +641,22 @@ void MyCanvas::CreateAntiAliasedBitmap()
{
wxBitmap bitmap( 300, 300 );
wxMemoryDC dc;
{
wxMemoryDC dc(bitmap);
dc.SelectObject( bitmap );
dc.Clear();
dc.Clear();
dc.SetFont( wxFont( 24, wxDECORATIVE, wxNORMAL, wxNORMAL) );
dc.SetTextForeground( wxT("RED") );
dc.DrawText( wxT("This is anti-aliased Text."), 20, 5 );
dc.DrawText( wxT("And a Rectangle."), 20, 45 );
dc.SetFont( wxFont( 24, wxDECORATIVE, wxNORMAL, wxNORMAL) );
dc.SetTextForeground( wxT("RED") );
dc.DrawText( wxT("This is anti-aliased Text."), 20, 5 );
dc.DrawText( wxT("And a Rectangle."), 20, 45 );
dc.SetBrush( *wxRED_BRUSH );
dc.SetPen( *wxTRANSPARENT_PEN );
dc.DrawRoundedRectangle( 20, 85, 200, 180, 20 );
}
dc.SetBrush( *wxRED_BRUSH );
dc.SetPen( *wxTRANSPARENT_PEN );
dc.DrawRoundedRectangle( 20, 85, 200, 180, 20 );
wxImage original= bitmap.ConvertToImage();
wxImage original = bitmap.ConvertToImage();
wxImage anti( 150, 150 );
/* This is quite slow, but safe. Use wxImage::GetData() for speed instead. */