merged 2.4 branch into the trunk
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18040 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -73,9 +73,11 @@ public:
|
||||
MyCanvas( MyFrame *parent );
|
||||
|
||||
void OnPaint( wxPaintEvent &event );
|
||||
void OnChar( wxKeyEvent &event );
|
||||
void OnEraseBackground( wxEraseEvent &event );
|
||||
|
||||
wxBitmap m_bitmap;
|
||||
wxString m_text;
|
||||
|
||||
private:
|
||||
DECLARE_EVENT_TABLE()
|
||||
@@ -160,6 +162,7 @@ void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
|
||||
|
||||
BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow)
|
||||
EVT_PAINT( MyCanvas::OnPaint)
|
||||
EVT_CHAR( MyCanvas::OnChar)
|
||||
EVT_ERASE_BACKGROUND( MyCanvas::OnEraseBackground)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
@@ -176,6 +179,30 @@ MyCanvas::MyCanvas( MyFrame *parent )
|
||||
new wxStaticBitmap( this, -1, m_bitmap, wxPoint(80,20) );
|
||||
}
|
||||
|
||||
void MyCanvas::OnChar( wxKeyEvent &event )
|
||||
{
|
||||
#if wxUSE_UNICODE
|
||||
if (event.m_uniChar)
|
||||
{
|
||||
m_text += event.m_uniChar;
|
||||
Refresh();
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
// some test cases
|
||||
switch (event.m_keyCode)
|
||||
{
|
||||
case WXK_UP: m_text += wxT( "<UP>" ); break;
|
||||
case WXK_LEFT: m_text += wxT( "<LEFT>" ); break;
|
||||
case WXK_RIGHT: m_text += wxT( "<RIGHT>" ); break;
|
||||
case WXK_DOWN: m_text += wxT( "<DOWN>" ); break;
|
||||
case WXK_RETURN: m_text += wxT( "<ENTER>" ); break;
|
||||
default: m_text += event.m_keyCode; break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void MyCanvas::OnPaint( wxPaintEvent &event )
|
||||
{
|
||||
wxPaintDC dc(this);
|
||||
@@ -188,6 +215,14 @@ void MyCanvas::OnPaint( wxPaintEvent &event )
|
||||
|
||||
dc.SetTextForeground(*wxBLUE);
|
||||
dc.DrawText(_T("This text is drawn from OnPaint"), 65, 65);
|
||||
|
||||
wxString tmp;
|
||||
tmp.Printf( _T("Hit any key to display more text: %s"), m_text.c_str() );
|
||||
int w,h;
|
||||
dc.GetTextExtent( tmp, &w, &h );
|
||||
dc.SetBrush( *wxWHITE_BRUSH );
|
||||
dc.DrawRectangle( 65, 85, w, h );
|
||||
dc.DrawText( tmp, 65, 85 );
|
||||
|
||||
#if 0
|
||||
wxRegionIterator upd( GetUpdateRegion() );
|
||||
|
Reference in New Issue
Block a user