Autor Beitrag
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Di 25.03.03 17:50 
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.
ausblenden 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

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.


Zuletzt bearbeitet von wulfskin am Di 25.03.03 19:00, insgesamt 1-mal bearbeitet
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: 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~

_________________
Aya
I aim for my endless dreams and I know they will come true!
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: 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..!

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!
wulfskin Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: 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!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: 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~

_________________
Aya
I aim for my endless dreams and I know they will come true!
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: 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..!

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!
wulfskin Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: 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

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.