class Simple:public wxFrame
{
public:
Simple(const wxString& title);
protected:
void OnPaint(wxPaintEvent& event);
};
Simple::Simple(const wxString& title)
:wxFrame(NULL,-1,title,wxPoint(-1,-1),wxSize(680,580))
{
wxClientDC dc(this);
dc.SetPen(wxPen(*wxYELLOW, 1));//wxPen(*wxYELLOW, 1)定义一个画笔,颜色为黄色,画笔宽度为1
dc.DrawPoint(wxPoint(20,120));//在鼠标的位置绘制一个点
dc.SetPen(wxNullPen);//清除画笔
Bind(wxEVT_PAINT,wxPaintEventHandler(Simple::OnPaint),this);
Centre();
}
void Simple::OnPaint(wxPaintEvent& event)
{
wxPaintDC dc(this);
wxSize sz(180,40);
wxColour col1,col2;
col1.Set("#e12223");
col2.Set("#000000");
dc.SetPen(*wxYELLOW);
//线性渐变
dc.GradientFillLinear(wxRect(wxPoint(20,20),sz),col1,col2,wxNORTH);
dc.GradientFillLinear(wxRect(wxPoint(20,80),sz),col1,col2,wxSOUTH);
dc.GradientFillLinear(wxRect(wxPoint(20,140),sz),col1,col2,wxEAST);
dc.GradientFillLinear(wxRect(wxPoint(20,200),sz),col1,col2,wxLEFT);
//径向渐变
dc.GradientFillConcentric(wxRect(wxPoint(20,260),sz),col1,col2);
wxGCDC gcdc(dc);
gcdc.SetPen(*wxRED);
gcdc.SetBrush(*wxBLUE);
gcdc.DrawRectangle(wxPoint(20,320),sz);
gcdc.GradientFillLinear(wxRect(wxPoint(20,380),sz),col1,col2,wxLEFT);
}