Aktuelle Zeit: 15.11.2018 20:26

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: [Erledigt] Gadget aktivieren via Moushover, aber wie?
BeitragVerfasst: 17.05.2018 11:17 
Offline

Registriert: 30.04.2009 21:21
Hallo zusammen

Ich bin mal wieder dabei etwas zu versuchen.
In diesem Post http://www.purebasic.fr/german/viewtopic.php?p=343800#p343800 von RSBasic habe ich ein code Snippet gefunden welches mir für mein Vorhaben helfen könnte.
Ich habe dieses Snippet etwas abgeändert um mein Vorhaben etwas zu verdeutlichen

Code:
EnableExplicit

Define hhkLLMouse

Procedure MouseKeyHook(nCode, wParam, lParam)
  Select wParam
    Case #WM_LBUTTONDOWN
      Debug "Linke Maustaste wird gedrückt."
    Case #WM_LBUTTONUP
      Debug "Linke Maustaste wurde losgelassen."
    Case #WM_MOUSEMOVE
      Debug EventGadget()
  EndSelect
  ProcedureReturn CallNextHookEx_(0, nCode, wParam, lParam)
EndProcedure

If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ListIconGadget(1,0,0,WindowWidth(0)/2,WindowHeight(0),"Title 1",200,0)
  ListIconGadget(2,WindowWidth(0)/2,0,WindowWidth(0)/2,WindowHeight(0),"Title 1",200,0)
  hhkLLMouse = SetWindowsHookEx_(#WH_MOUSE_LL, @MouseKeyHook(), GetModuleHandle_(0), 0)
 
  Repeat
  Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

UnhookWindowsHookEx_(hhkLLMouse)


Der Debugger zeigt mir an welches Gadget gerade aktiv ist (Fenster=0, Listicon1=1, ListIcon2= 2), je nachdem welches Gadget angeklickt wurde. Soweit so gut.
Wie bringe ich Windows jetzt dazu mir ,ohne explizitem Tastendruck auf eines der Gadgets (ListIcon1 / ListIcon2), dieses Gadget beim Überfahren mit der Maus zu aktivieren.
Ich habe da in der API Referenz erst mal nichts gefunden.

Hat da jemand eine Idee?

_________________
Wissen schadet nur dem, der es nicht hat !


Zuletzt geändert von MenschMarkus am 17.05.2018 11:44, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Gadget aktivieren via Moushover, aber wie?
BeitragVerfasst: 17.05.2018 11:26 
Offline
Moderator
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Rupture Farms
MouseHook würde ich nicht benutzen, dafür gibt es SetWindowCallback:
Code:
EnableExplicit

Procedure WinCallback(hWnd, uMsg, wParam, lParam)
 
  Select uMsg
    Case #WM_NOTIFY
      Debug wParam
  EndSelect
 
  ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ListIconGadget(1,0,0,WindowWidth(0)/2,WindowHeight(0),"Title 1",200,0)
  ListIconGadget(2,WindowWidth(0)/2,0,WindowWidth(0)/2,WindowHeight(0),"Title 1",200,0)
 
  SetWindowCallback(@WinCallback())
 
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        End
    EndSelect
  ForEver
EndIf

_________________
BildBildBildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Gadget aktivieren via Moushover, aber wie?
BeitragVerfasst: 17.05.2018 11:34 
Offline
Benutzeravatar

Registriert: 25.01.2005 12:19
Es gibt dazu ein schönes Beispiel von netmaestro und srod aus dem englischen Forum mit dem bequemen Befehl AddHoverGadget(), um ein beliebiges Gadget beim Überfahren mit dem Maus-Cursor mit einem roten Rahmen zu versehen:
http://www.purebasic.fr/english/viewtop ... 14&t=23294


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Gadget aktivieren via Moushover, aber wie?
BeitragVerfasst: 17.05.2018 11:43 
Offline

Registriert: 30.04.2009 21:21
Vielen Dank,

das ging ja wirklich schnell. Das sollte mir helfen.
:allright:

_________________
Wissen schadet nur dem, der es nicht hat !


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [Erledigt] Gadget aktivieren via Moushover, aber wie?
BeitragVerfasst: 19.05.2018 18:29 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
Oder einfach PeekMessage_() vor den PureBasic Event() Befehlen aufrufen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [Erledigt] Gadget aktivieren via Moushover, aber wie?
BeitragVerfasst: 20.05.2018 19:03 
Offline
Benutzeravatar

Registriert: 27.02.2006 22:30
Wohnort: Neumünster
dafür hat Windows TrapMouseEvent() erfunden

Es lebe die Windows Api :mrgreen:

_________________
Purebasic 5.60 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [Erledigt] Gadget aktivieren via Moushover, aber wie?
BeitragVerfasst: 20.05.2018 19:48 
Offline
Moderator
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Rupture Farms
hjbremer hat geschrieben:
dafür hat Windows TrapMouseEvent() erfunden

Du meinst TrackMouseEvent_(). Hier ein Beispielcode für MenschMarkus:
Code:
EnableExplicit

Global LVCB

Procedure LVCB(hWnd, Message, wParam, lParam)
  Protected TRACKMOUSEEVENT.TRACKMOUSEEVENT
 
  Select Message
    Case #WM_MOUSEMOVE
      Debug "hover"
      TRACKMOUSEEVENT\cbSize = SizeOf (TRACKMOUSEEVENT)
      TRACKMOUSEEVENT\dwFlags = #TME_LEAVE
      TRACKMOUSEEVENT\hwndTrack = hwnd
      TrackMouseEvent_(TRACKMOUSEEVENT)
    Case #WM_MOUSELEAVE
      Debug "leave"
  EndSelect
 
  ProcedureReturn CallWindowProc_(LVCB, hWnd, Message, wParam, lParam)
EndProcedure

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ListIconGadget(1,0,0,WindowWidth(0)/2,WindowHeight(0),"Title 1",200,0)
  ListIconGadget(2,WindowWidth(0)/2,0,WindowWidth(0)/2,WindowHeight(0),"Title 1",200,0)
 
  LVCB = SetWindowLongPtr_(GadgetID(1), #GWL_WNDPROC, @LVCB())
 
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        End
    EndSelect
  ForEver
EndIf


hjbremer hat geschrieben:
Es lebe die Windows Api :mrgreen:

WinAPI forever. :D

_________________
BildBildBildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  
cron

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye