我有一个myFrame类,我试图删除Rectangle对象,但我失败了。我做错了什么。 OnDoubleClick没有反应。
class shapes : public wxEvtHandler
...
class Rectangle: public Shape
....
class Circle: public Shape
...
class Line : public Shape
...
-----------------------
class myFrame
...
myViewer* view;
vector<Shape*> shapes;
myFrame::DrawRect(){
wxPaintDC dc(this);
Rectangle* r=new Rectangle();
r->setDC(&dc);
r->drawToDC();
r->Connect
(
wxEVT_LEFT_DCLICK,
wxMouseEventHandler(myFrame::OnDoubleClick),
NULL,
this
);
shapes.push_back(r);
}
您不能使用wxPaintDC支持“OnPaint”事件处理程序。而不是这个,使用wxClientDC或wxWindowDC。
并且你最好将wxFrame指针传递给矩形而不是wxDC派生类。然后,矩形将在需要时获得正确的直流。