void OnPaint( wxPaintEvent &event );
wxBitmap *my_horse;
+ wxBitmap *my_square;
DECLARE_EVENT_TABLE()
};
: wxScrolledWindow( parent, id, pos, size, wxSUNKEN_BORDER )
{
wxImage image;
+
+ wxBitmap bitmap( 100, 100 );
+
+ wxMemoryDC dc;
+ dc.SelectObject( bitmap );
+ dc.SetBrush( wxBrush( "orange", wxSOLID ) );
+ dc.SetPen( *wxWHITE_PEN );
+ dc.DrawRectangle( 0, 0, 100, 100 );
+ dc.SelectObject( wxNullBitmap );
+
+ image = bitmap.ConvertToImage();
+ image.SaveFile( "../test.png", wxBITMAP_TYPE_PNG );
+
image.LoadFile( "../horse.png", wxBITMAP_TYPE_PNG );
my_horse = new wxBitmap( image );
+
+ image.LoadFile( "../test.png", wxBITMAP_TYPE_PNG );
+ my_square = new wxBitmap( image );
}
MyCanvas::~MyCanvas(void)
{
delete my_horse;
+ delete my_square;
}
void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) )
wxPaintDC dc( this );
PrepareDC( dc );
- dc.DrawBitmap( *my_horse, 30, 120 );
+ dc.DrawText( "Loaded image", 30, 100 );
+ if (my_square->Ok()) dc.DrawBitmap( *my_square, 30, 120 );
+
+ dc.DrawText( "Drawn directly", 150, 100 );
+ dc.SetBrush( wxBrush( "orange", wxSOLID ) );
+ dc.SetPen( *wxWHITE_PEN );
+ dc.DrawRectangle( 150, 120, 100, 100 );
+
+ if (my_horse->Ok()) dc.DrawBitmap( *my_horse, 30, 240 );
}
// MyFrame
-const ID_QUIT = 108;
-const ID_ABOUT = 109;
+const int ID_QUIT = 108;
+const int ID_ABOUT = 109;
IMPLEMENT_DYNAMIC_CLASS( MyFrame, wxFrame )
BEGIN_EVENT_TABLE(MyFrame,wxFrame)
EVT_MENU (ID_ABOUT, MyFrame::OnAbout)
EVT_MENU (ID_QUIT, MyFrame::OnQuit)
+ EVT_SIZE (MyFrame::OnSize)
END_EVENT_TABLE()
MyFrame::MyFrame(void) :
- wxFrame( (wxFrame *) NULL, -1, (char *) "Robert's Test application", wxPoint(20,20), wxSize(470,360) )
+ wxFrame( (wxFrame *) NULL, -1, "wxImage sample", wxPoint(20,20), wxSize(470,360) )
{
wxMenu *file_menu = new wxMenu();
file_menu->Append( ID_ABOUT, "About..");
SetMenuBar( menu_bar );
- m_canvas = new MyCanvas( this, -1, wxPoint(2,62), wxSize(300-4,120-4) );
+ CreateStatusBar(2);
+ int widths[] = { -1, 100 };
+ SetStatusWidths( 2, widths );
+
+ m_canvas = new MyCanvas( this, -1, wxPoint(0,0), wxSize(10,10) );
m_canvas->SetScrollbars( 10, 10, 50, 50 );
}
void MyFrame::OnAbout( wxCommandEvent &WXUNUSED(event) )
{
- (void) wxMessageBox( "Image demo\nRobert Roebling (c) 1998", "About Image Demo", wxOK );
+ (void) wxMessageBox( "wxImage demo\nRobert Roebling (c) 1998", "About wxImage Demo", wxOK );
+}
+
+void MyFrame::OnSize( wxSizeEvent &WXUNUSED(event) )
+{
+ int w,h;
+ GetClientSize( &w, &h );
+ m_canvas->SetSize( w, h );
}
//-----------------------------------------------------------------------------