Canvas Button Icon malen

Die Lösung ist sicher easy, ich finde sie aber gerade nicht.

Ich habe mir dann doch mal einen eigenen Canvas Button gebaut.

ich male also mein Icon in das canvas:
g.DrawPicture (Adressbuch152,0,0,g.Width, g.Height, 0, 0, Adressbuch152.Width, Adressbuch152.Height)

dann beim Mouse down wird dan Icon verdunkelt:
dim map(255) as Integer
for i as integer =0 to 255
map(i)=i/1.8
next
p=Adressbuch152
p.rgBSurface.transform map
g.DrawPicture (p,0,0,g.Width, g.Height, 0, 0, Adressbuch152.Width, Adressbuch152.Height)

beim Mouse up muss nun wieder das Originaicon gemalt werden und genau hier stehe ich auf dem Schlauch denn, ein Refresh
und ein erneutes malen mit
g.DrawPicture (Adressbuch152,0,0,g.Width, g.Height, 0, 0, Adressbuch152.Width, Adressbuch152.Height)

verdunkelt nun das Icon immer mehr, es wird also immer darüber gemalt und ich bekomme es nicht mehr gelöscht.
Stehe auf dem Schlauch, hat jemand eine Lösung?

Versuch es hiermit: http://documentation.xojo.com/index.php/RectControl.RefreshRect wobei EraseBackground = true ist.

Auf das Einfachste bin ich nicht gekommen, Fenster Refresh und neu malen …
Refreshrect sollte es auch tun, danke