先获取对象:
bgParent = BGPanel(self, size=size, bmp=bgpng)
bgParent.Bind(wx.EVT_MOTION, self.OnMouseMove)
bgParent.Bind(wx.EVT_LEFT_UP, self.OnMouseUp)
然后定义鼠标的位置和动作:
def OnMouseUp(self, evt):
if self.HasCapture():self.ReleaseMouse()
def OnMouseMove(self, evt):
if evt.LeftIsDown():
x, y = self.ClientToScreen(evt.GetPosition())
if hasattr(self, 'delta'):
fp = (x - self.delta[0], y - self.delta[1])
self.Move(fp)
else:
x, y = self.ClientToScreen(evt.GetPosition())
originx, originy = self.GetPosition()
dx = x - originx
dy = y - originy
self.delta = ((dx, dy))
具体例子,改天再实现