Aktuelle Zeit: 15.11.2018 12:12

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: WindowFromPoint_() gibt immer 0 zurück
BeitragVerfasst: 07.06.2018 10:46 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Hi Leute,

ich habe mir folgendes Schnipsel zusammengebastelt und mich gefragt, warum WindowFromPoint_() immer 0 zurück gibt. Mache ich was falsch?
Normalerweise sollte ich das Window-Handle erhalten, das sich unter der Maus befindet. So zumindest die Theorie. Und am Ende will ich die Dimension des darunter liegenden Fensters erfassen. Das mache ich dan mit GetWindowRect_(). Aber soweit komme ich ja gar nicht erst.

Kann mir jemand helfen?
Code:
Structure MSLLHOOKSTRUCT
   pt.POINT
   mouseData.l
   flags.l
   time.l
   *dwExtraInfo
EndStructure

Procedure.i MouseHook(nCode, wParam, *p.MSLLHOOKSTRUCT)
   If nCode = #HC_ACTION
      Select wParam
         Case #WM_MOUSEMOVE
            ;Debug "" + *p\pt\x + "," + *p\pt\y
         ;Case #WM_LBUTTONDBLCLK
            hwnd.l = WindowFromPoint_(*p\pt)
            Debug "" + *p\pt\x + "," + *p\pt\y + ~"\t" + hwnd
      EndSelect
   EndIf
   
   ProcedureReturn CallNextHookEx_(0, nCode, wParam, *p)
EndProcedure

SetWindowsHookEx_(#WH_MOUSE_LL, @MouseHook(), GetModuleHandle_(0), 0)

OpenWindow(0, 0, 0, 400, 300, "test")
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow

_________________
Freakscorner.de - Der Bastelkeller | Neustes Video: Neje DK - 1 Watt Laser Engraver
Ubuntu Gnome 18.04.1 LTS x64, PureBasic 5.60 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: WindowFromPoint_() gibt immer 0 zurück
BeitragVerfasst: 07.06.2018 11:12 
Offline
Moderator
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Rupture Farms
Hi
Code:
EnableExplicit

Structure MSLLHOOKSTRUCT
  StructureUnion
    pt.POINT
    q.q
  EndStructureUnion
  mouseData.l
  flags.l
  time.l
  *dwExtraInfo
EndStructure

Procedure.i MouseHook(nCode, wParam, *p.MSLLHOOKSTRUCT)
  Protected hwnd
 
  If nCode = #HC_ACTION
    Select wParam
      Case #WM_MOUSEMOVE
        ;Debug "" + *p\pt\x + "," + *p\pt\y
        ;Case #WM_LBUTTONDBLCLK
        hwnd = WindowFromPoint_(*p\q)
        Debug "" + *p\pt\x + "," + *p\pt\y + ~"\t" + hwnd
    EndSelect
  EndIf
 
  ProcedureReturn CallNextHookEx_(0, nCode, wParam, *p)
EndProcedure

SetWindowsHookEx_(#WH_MOUSE_LL, @MouseHook(), GetModuleHandle_(0), 0)

OpenWindow(0, 0, 0, 400, 300, "test")

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow

_________________
BildBildBildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: WindowFromPoint_() gibt immer 0 zurück
BeitragVerfasst: 07.06.2018 11:15 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Oh, der kriegt den Punkt als Wert und nicht als Pointer. Das erklärt natürlich einiges. :lol:

Danke :allright:

_________________
Freakscorner.de - Der Bastelkeller | Neustes Video: Neje DK - 1 Watt Laser Engraver
Ubuntu Gnome 18.04.1 LTS x64, PureBasic 5.60 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: WindowFromPoint_() gibt immer 0 zurück
BeitragVerfasst: 07.06.2018 11:22 
Offline
Moderator
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Rupture Farms
Ich bin neugierig. :D Was für eine Windows-Anwendung möchtest du gerne entwickeln?

_________________
BildBildBildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: WindowFromPoint_() gibt immer 0 zurück
BeitragVerfasst: 07.06.2018 11:23 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Bleibt erst mal geheim. Vielleicht gibt es Geld dafür. :-D Hier sind schon einige begeistert.

_________________
Freakscorner.de - Der Bastelkeller | Neustes Video: Neje DK - 1 Watt Laser Engraver
Ubuntu Gnome 18.04.1 LTS x64, PureBasic 5.60 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: WindowFromPoint_() gibt immer 0 zurück
BeitragVerfasst: 07.06.2018 12:57 
Offline
Benutzeravatar

Registriert: 17.05.2007 09:30
Wohnort: Linz - Austria
@NicTheQuick:

Wenn du...
Code:
hwnd.l = WindowFromPoint_(*p\pt)
auf
Code:
hwnd.l = WindowFromPoint_(PeekQ(*p\pt))
änderst, dann funktioniert es auch mit deinem Beispiel


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: WindowFromPoint_() gibt immer 0 zurück
BeitragVerfasst: 07.06.2018 13:00 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Ja, logisch. Ich mag die Struktur-Variante aber lieber.

_________________
Freakscorner.de - Der Bastelkeller | Neustes Video: Neje DK - 1 Watt Laser Engraver
Ubuntu Gnome 18.04.1 LTS x64, PureBasic 5.60 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: WindowFromPoint_() gibt immer 0 zurück
BeitragVerfasst: 16.08.2018 11:02 
Offline

Registriert: 21.07.2017 22:36
Gibt es irgendeinen Grund dafür, warum:
Code:
Case #WM_LBUTTONDBLCLK

hier nichts tut?

Egal in welchem der beiden Codebeispiele...

Auskommentiert und lediglich einen Debug output gesetzt,
wird hier irgendwie nicht getriggert...

Code:
Case #WM_LBUTTONDOWN


funktioniert dagegen einwandfrei


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: WindowFromPoint_() gibt immer 0 zurück
BeitragVerfasst: 16.08.2018 11:17 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Da gibt es keinen Grund. Ich hab für den Code-Schnipsel nur den kompletten Code des Projektes stark eingedampft. Da blieb dann dieses Kommentarwirrwarr übrig.

_________________
Freakscorner.de - Der Bastelkeller | Neustes Video: Neje DK - 1 Watt Laser Engraver
Ubuntu Gnome 18.04.1 LTS x64, PureBasic 5.60 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: WindowFromPoint_() gibt immer 0 zurück
BeitragVerfasst: 16.08.2018 11:39 
Offline

Registriert: 21.07.2017 22:36
Nein, NicTheQuick, ich glaub du verstehst mich falsch.

Es geht darum, dass der hook gar nicht auf #WM_LBUTTONDBLCLK reagiert,
nicht darum, dass du es nur (auskommentiert) "hast drinstehen lassen" :)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] 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:  

 


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