wxWidgets:wxEVTの処理_PAINT
2187 ワード
私たちは依然としてwxFrameに継承されたMyFrameを例に挙げています.
MyFrame.h:
MyFrame.cpp
上のコードでは、描画前に文字背景モードをwxSOLIDに設定します.そうしないと、文字背景色が正しく表示されません.
また、MyFrameのコンストラクション関数では、ウィンドウの背景を白に設定します.Paintの前に、Windowsは無効な領域をこの色で塗りつぶします.
MyFrame.h:
class MyFrame : public wxFrame
{
......
private:
......
void OnPaint(wxPaintEvent &event);
};
MyFrame.cpp
MyFrame :: MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
: wxFrame(NULL, wxID_ANY, title, pos, size)
{
//
SetBackgroundColour(*wxWHITE);
// Bind paint event
Bind(wxEVT_PAINT, &MyFrame::OnPaint, this);
}
// paint event handler
void MyFrame :: OnPaint(wxPaintEvent &event)
{
wxPaintDC dc(this);
dc.SetTextBackground(*wxRED);
dc.SetTextForeground(*wxYELLOW);
dc.SetBackgroundMode(wxSOLID);
dc.DrawText(L"Exercise 1", 0, 0);
}
上のコードでは、描画前に文字背景モードをwxSOLIDに設定します.そうしないと、文字背景色が正しく表示されません.
また、MyFrameのコンストラクション関数では、ウィンドウの背景を白に設定します.Paintの前に、Windowsは無効な領域をこの色で塗りつぶします.