Como criar um efeito de foco no StaticBitmap no wxpython?

Eu quero criar efeito de foco no StaticBitmap - Se o cursor do mouse está sobre o bitmap, mostra uma imagem, se não, mostra a segunda imagem. É um programa trivial (funciona perfeitamente com um botão). No entanto, o StaticBitmap não emite eventos EVT_WINDOW_ENTER, EVT_WINDOW_LEAVE.

Eu posso trabalhar com EVT_MOTION. Se as imagens forem trocadas quando o cursor estiver na borda da imagem, algumas vezes a troca não funcionará. (Principalmente com movimento rápido pela borda).

Exemplo de código:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import wx

def onWindow(event):
    print "window event:", event.m_x, event.m_y

def onMotion(event):
    print "motion event:", event.m_x, event.m_y

app = wx.App()

imageA = wx.Image("b.gif", wx.BITMAP_TYPE_ANY).ConvertToBitmap()
imageB = wx.Image("a.gif", wx.BITMAP_TYPE_ANY).ConvertToBitmap()

frame = wx.Frame(None, wx.ID_ANY, title="Hover effect", size=(100+imageA.GetWidth(), 100+imageA.GetHeight()))

w = wx.Window(frame)
bmp = wx.StaticBitmap(w, -1, imageA, (50, 50), (imageA.GetWidth(), imageA.GetHeight()))
bmp.Bind(wx.EVT_MOTION, onMotion) 
bmp.Bind(wx.EVT_ENTER_WINDOW, onWindow)
bmp.Bind(wx.EVT_LEAVE_WINDOW, onWindow)

frame.Show()
app.MainLoop()

questionAnswers(2)

yourAnswerToTheQuestion