wxWidgets绘图面板

时间:2016-01-07 15:37:45

标签: c++ drawing wxwidgets

我正在使用wxWidgets进行一些应用程序,我需要在不同的面板上绘制一些图像。在我的应用程序中有一个主框架,其中包含面板,其中包含一些按钮和文本框。我想在这个面板上创建绘图面板。我创建了一些基于wxWidgets示例的简单测试类来绘制一些东西。

#include "MiniBitmap.h"

MiniBitmap::MiniBitmap(wxPanel *parent, int x, int y, int width, int height, char *bits) : 
    wxPanel(parent, x, y, width, height) {
        Img = wxBitmap(100,100, wxBITMAP_SCREEN_DEPTH);
}
MiniBitmap::MiniBitmap(wxPanel *parent, wxWindowID Id, const wxPoint& pos, const wxSize& size) :
    wxPanel(parent, Id, pos, size) {
}
void MiniBitmap::paintEvent(wxPaintEvent & evt) {
    // depending on your system you may need to look at double-buffered dcs
    wxPaintDC dc(this);
    render(dc);
}

void MiniBitmap::paintNow() {
    // depending on your system you may need to look at double-buffered dcs
    wxClientDC dc(this);
    render(dc);
}

void MiniBitmap::render(wxDC&  dc) {
 //   dc.DrawBitmap( Img, 0, 0, false );
    dc.DrawText(wxT("Testing"), 40, 60); 
    dc.SetBrush(*wxGREEN_BRUSH); // green filling
    dc.SetPen( wxPen( wxColor(255,0,0), 5 ) ); // 5-pixels-thick red outline
    dc.DrawCircle( wxPoint(200,100), 25 /* radius */ );
    Refresh();

}

在我的框架中,我在事件表中连接事件

EVT_PAINT(ID_MINI, MiniBitmap::paintEvent)

我在主框架构造函数中动态创建MiniBitmap类型对象。我不太了解这个图书馆,所以我不知道我在哪里弄错了。面板可以成为另一个面板的孩子吗?或者我错了连接事件?

0 个答案:

没有答案