AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

wm_mouseleave fuer trayicon?

Ein Thema von richard_boderich · begonnen am 16. Mai 2007 · letzter Beitrag vom 16. Mai 2007
Antwort Antwort
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#1

wm_mouseleave fuer trayicon?

  Alt 16. Mai 2007, 12:44
hallo

ich erzeuge mittels shell_notify ein trayicon. nun moechte ich fuer das trayicon einen mouseenter und einen mouseleave event haben. ich habe
den ganzen vormittag aufgrund eines beispieles von luckie rumprobiert und komme nicht weiter. ich habe es jetzt so versucht. mein problem ist, das
wm_mouseleave nicht eintritt. ich habe mit winsight gecheckt ob wm_mouseleave(0x2A3) auch gefeuert wird, und es ist soweit ok. die massage.lparamlo abfrage hatte ich auch schonmal komplett umgekrempelt. ich glaube naehmlich , das ich bei wm_mouseleave auf Message.MSG abfragen muss, denn bei wm_mouseleave sind alle
parameter laut MSDN mit dem wert 0 versehen. nur wie gesagt wm_mouseleave tritt nie ein bzw. der programhalt wird nicht durchgefuert.
hoffe das mir jemand helfen kann. danke fuer eure zeit.

richard


Delphi-Quellcode:
Procedure TForm1.WMTaskBarEvent(Var Message: TMessage);
Var
  Pt : TPoint;
  eventtrack: TTrackMouseEvent;
  result:longbool;
Begin
  Case Message.LParamLo Of
    WM_LBUTTONDown :
      Begin
         if PopupactionbarEx1.MenuActive then PopupactionbarEx1.PopupMenu.CloseMenu;
      End;
    WM_RBUTTONDown :
      Begin
        SetForegroundWindow(Handle);
        PostMessage(Handle, WM_NULL, 0, 0);
        GetCursorPos(Pt);
        if PopupactionbarEx1.menuactive=false then PopupactionbarEx1.Popup(Pt.x, Pt.y-10)
        else PopupactionbarEx1.PopupMenu.BringToFront;
      End;
    WM_LBUTTONDBLCLK:
      Begin
        // nochnix
      End;

    WM_MOUSEmove:
      Begin

       EventTrack.dwFlags := TME_LEAVE;
       EventTrack.hwndTrack := Handle;
       EventTrack.cbSize := SizeOf(EventTrack);
       result:=TrackMouseEvent(EventTrack);

      End;

    WM_Mouseleave:
      Begin
       halt; //nur um zu sehen ob es geht
      End;

  End;
End;
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: wm_mouseleave fuer trayicon?

  Alt 16. Mai 2007, 13:03
Erste Satz aus der Hilfe:
Zitat:
The WM_MOUSELEAVE message is posted to a window when the cursor leaves the client area of the window specified in a prior call to TrackMouseEvent.
Ein Icon ist kein Fenster Höchstens die INA selber. Davon mal abgesehen, warum initialisiert du die TrackMouseEvent-Struktur bei jeder Mausbewegung? Und EventTrack.hwndTrack := Handle; warum gibst du dort das Fensterhandle an? Du willst doch, dass die Nachricht ausgelöst wird, wenn die Maus das Icon in der TNA verlässt:
Zitat:
hwndTrack
Specifies a handle to the window to track.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#3

Re: wm_mouseleave fuer trayicon?

  Alt 16. Mai 2007, 13:07
erstmal danke fuer deine antwort luckie. ich habe in meiner verzweiflung schon alles durchprobiert. das ist nur die letzte version meines codes.
das mit dem client bereich ist mir klar. jedoch gibt es auch eine wm_ncmouseleaves message, die fuer solche faelle nutzbar sein durefte? oder etwas nicht?

gruss richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz