Una forma de hacerlo (la que y uso) es detectar colisiones entre el área del botón contra el puntero del mouse.
Si hay colisión, entonces el puntero está sobre el botón y puedes cambiar las propiedades del mismo, ya sea, la imagen, los colores o la transparencia.
Yo complico un poco más, ya que creo una clase que tiene una propiedad foco. Lo que hago, es activar o desactivar dicha propiedad y luego modifico la imagen si Foco = True o False.
Más tarde voy a subir un proyecto donde tengo implementado lo que comento, sin embargo, el proyecto fue el primero que realicé, por lo cual puede tener muchos problemas en el código ya que nunca lo depuré u optimice (fue mi primer juego con la librería, más que nada a modo de prueba).