【问题标题】:wxWidgets connect mouse event to a shape object over a wxPaintDC to deletewxWidgets 通过 wxPaintDC 将鼠标事件连接到形状对象以删除
【发布时间】:2018-08-08 03:51:22
【问题描述】:

我有一个 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);
}

【问题讨论】:

    标签: c++ events mouse wxwidgets


    【解决方案1】:

    您不能在“OnPaint”事件处理程序之外使用 wxPaintDC。 而不是这个,使用 wxClientDC 或 wxWindowDC。

    而且你最好将 wxFrame 指针传递给矩形而不是 wxDC 派生类。 然后,矩形将在需要时获得正确的 dc。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多