大家好我来这里打死马..
基本上我正在做的是将东西分配到地图上。
地图:用户上传后台的wxStaticBitmap对象 炸弹(笑):wxStaticBitmap对象
我设法通过wxMemoryDC + wxDC将炸弹合并到地图上的任意位置。
然而,我完全坚持用鼠标设置“炸弹”。我想点击地图上的某个地方,不知何故炸弹将被丢弃在我刚刚点击的位置。
我用wxMouseEvent和EVT_MOTION进行了攻击(好吧,就像在顶部声明的宏指令) 显然,它们只适用于wxWindow或wxFrame。
我想知道我是如何通过Connect()将鼠标事件绑定到staticbitmap但是我没有找到关于炸弹分配的正确用法......
答案 0 :(得分:0)
通常,最好创建一个wxPanel作为框架的子项,然后将所有窗口小部件创建为wxPanel的子项。通过这种方式,大多数一切都可以按照你自然的预期进行,并且你可以减少陷阱。
答案 1 :(得分:0)
我发现的最好和最简单的解决方案是将自己的事件处理程序连接到wxStaticBitmap,如下所示:
sb->Connect(wxID_ANY,wxEVT_MOTION,
wxMouseEventHandler(MyFrame::OnMouse),NULL,this);
答案 2 :(得分:0)
你可以像这样连接鼠标移动,鼠标左键和鼠标左键:
thiri = new wxStaticBitmap(this, wxID_ANY, wxImage(966, 680), /*image start point*/wxPoint(0,0), /* canvas size to display*/ wxSize(966, 680));
// mouse event on image
thiri->Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler(Panel::OnMouseLeftDown), NULL, this );
thiri->Connect( wxEVT_MOTION, wxMouseEventHandler(Panel::OnMouseMove), NULL, this );
thiri->Connect( wxEVT_LEFT_UP, wxMouseEventHandler(Panel::OnMouseLeftUp), NULL, this);