Entwickler-Ecke
Windows API - WM_MOUSELEAVE abfangen
wulfskin - Di 25.03.03 17:50
Titel: WM_MOUSELEAVE abfangen
Hallo!
Hab wie ein glitzekleines Problem.
Ich möchte gerne die Nachricht
WM_[NC]MOUSELEAVE abfangen. Leider fangen da schon die Probleme an, ich bekomme diese Nachricht nie. In der Hilfe habe ich dann gelesen, dass ich zuerst per
TrackMouseEvent dem System verständluch machen muss, dass ich diese Nachricht bekommen möchte (so habe ich es jedenfalls verstanden). Dies habe ich dann auch gemacht, aber ich bekomme diese Nachricht dann nur beim Programmstart und dann nicht mehr. Hier mein Quelltext.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| private procedure MouseLeave(var Msg: TMessage); message WM_MOUSELEAVE;
procedure OnCreate{...}; var MouseEvent: tagTRACKMOUSEEVENT; begin with MouseEvent do begin cbSize := SizeOf(MouseEvent); dwFlags := TME_LEAVE; hwndTrack := Application.Handle; dwHoverTime := HOVER_DEFAULT; end; TrackMouseEvent(MouseEvent); |
Hat jemand eine Ahnung was daran falsch ist, bzw. warum ich die Nachricht nicht bekomme?
Zudem interessiert mich noch, wie Konstanten für
WM_NCMOUSELEAVE aussehen und der entsprechende Flag für
dwFlags (wie z.B. TME_LEAVE).
Vielen Dank für Eure Hilfe!
Hans-Peter
Aya - Di 25.03.03 18:03
Hi,
soweit ich weiß ist dafür die Message WM_MOUSELEAVE die falsche.. .;)
Versuch es mal mit CM_MOUSELEAVE
Au'revoir,
Aya~
Motzi - Di 25.03.03 18:47
@Aya: das was du meinst ist eine Control-Message, aber wulfskin meint tatsächlich WM_MOUSELEAVE bzw eigentlich WM_NCMOUSELEAVE. :wink:
Ich beschäftige mich auch gerade recht ausführlich mit dem NonClient Bereich und hab bis jetzt auch erfolglos versucht auf eine WM_NCMOUSELEAVE Message zu reagieren... Mal schaun, vielleicht wirds ja noch was..!
wulfskin - Di 25.03.03 19:04
Hallo Aya, hallo Motzi!
Eigentlich habe ich wirklich die Nachricht WM_MOUSELEAVE gemeint. Aber zu deiner Nachricht: Wo finde ich Informationen über Sie, bzw. wann wir diese den Ausgelöst (habe nix im PSDK gefunden)?
Mein Problem: Ich möchte meine ToolBar verstecken, wenn das Formular verlassen wird. In der Hilfe steht, dass diese obengenannte Nachricht genau dann verschickt wird.
Kennt jemand ne andere Lösung?
Gruß wulfskin!
Aya - Di 25.03.03 19:11
CM_MOUSELEAVE wird an ein Objekt (z.B. TForm) geschickt, sobald die Maus dieses objekt verlässt :)
Au'revoir,
Aya~
Motzi - Di 25.03.03 19:15
| wulfskin hat folgendes geschrieben: |
| Mein Problem: Ich möchte meine ToolBar verstecken, wenn das Formular verlassen wird. |
In diesem Fall ist dann wahrscheinlich doch die CM_MOUSELEAVE Message von Aya die richtige Wahl..!
wulfskin - Di 25.03.03 19:37
Ok, danke Motzi und Aya!
Es klappt wunderbar! Nur noch eine Frage: Wo bekomme ich Informationen über diese Message her, bzw. wo ist sie den Dokumentiert?
Ich möchte ja nicht wegen jeder Message die ich suche hier ins Forum posten ;)!
Danke
wulfskin
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!