[VB5] On Mouse Out?!

Hi!
Ich hab ein kleines Problem. Ich möchte, dass wenn der Benutzer mit der Maus über einen Label geht sich dessen Farbe verändert. Kein Problem, das erreiche ich mit dem Mouse over Ereignis. Aber was wenn der Benutzer nun nicht mehr mit der Maus auf diese Label zeigt? Ein Mouse Out Ereignis gibt’s nicht, aber die Farbe sollte sich wieder zurückverändern…

Vielen Dank für Tips
Patrick Ruhkopf

www.britney.purespace.de

Hallo Patrick,

1.dafür haben doch die anderen ein MouseMove Ereignis, Du müßtest dann in jede Sub die anderen Steuerelemente verwalten.

  1. Du frägst zyklisch über ein Timer Ereignis den Mauszeiger ab
    und ermittelst wo er gerade ist und reagierst dann entsprechend.

Gruß Patrick

Richtig, aber meine label sind alle am linken Rand des Forms. Wenn ich nun die maus auf einen der label bewege und dann ganz schnell nach links (also sich die maus nicht mehr auf meinem Programm befindet), bleib der Label logischerweise so wie als wenn die maus auf ihm wäre. Das kann ich ja schlecht mit den anderen Mouse over ereigneissen ausgleichen.
Wie kann ich den feststellen, ob sich die Maus gar nicht mehr über meinem Programm befindet?

Ich kenn mich in VB nicht aus, aber Windows sendet die Botschaften CM_MOUSEENTER und CM_MOUSELEAVE mit der WM_COMMAND - Botschaft.

Ansonsten mußt du die Maus capturen (SetCapture(hWnd)), dann werden auch die Mausbotschaften an das entsprechende Fenster (den Button) gesendet, wenn sich die Maus nicht mehr darüber befindet.

Als letztes fiele mir dann noch ein, daß zunächstmal eine WM_NCHITTEST - Botschaft gesendet wird, die als Ergebnis erstmal zurückgibt, ob sich die Maus im Fenster befindet. Möglicherweise wird die zunächst an den Button gesendet, wenn die Maus ihn verlassen hat. Dann stellt die Standard-Bearbeitung fest, daß sich die Maus nicht mehr im Fenster befindet und unterläßt eine WM_MOUSEMOVE - Botschaft.

Jochen

Danke, jetzt muss ich nur noch den Code für VB finden…
(was ich bis jetzt noch nicht geschafft habe)

Stichwort (so zum Anfangen):

  • WM_Mousemove
  • Message / Botschaft
  • WndProc

Stichwort (so zum Anfangen):

  • WM_Mousemove
  • Message / Botschaft
  • WndProc

habs schon gefunden