Herausfinden ob Maus in einem Rechteck geklickt hat
-
Hi, wie kann ich herausfinden ob die Maus zb.im bereich 10,10 100,100 geklickt hat ??
Hoffe es ist nicht allzuschwer

-
Is recht einfach

Mausposition holen mit GetCursorPos
einer RECT-Struktur deine Koordinaten zuweisen, in deinem Fall 10,10,100,100
Mit PtInRect prüfen, ob die Maus im Rechteck liegt.Um einen Mausklick abzufangen, musst du einen Hook installieren, jedenfalls wenn der Punkt/das Rechteck nicht in einem von dir erstellten Fenster liegt.
Dazu brauchst du SetWindowsHookEx und eine Dll, die die aufzurufende Callback-Funktion erhält.
Wenn das Rechteck in deinem Fenster liegt, einfach die WM_LBUTTONUP abfangen
Edit: Wenn du den Hook installierst, ruft Windows deine angegebene Funktion in deiner Dll auf. Die Funktion bekommt von Windows dann gleich schon die Mauskoordinaten übergeben, also entfällt GetCursorPos

-
mir ist das leider nicht ganze klar!! erst ein
SetRect(handler,10,10,100,100);
und darauf ein PtInRect ?
wie funktioniert das mit einem Kreis?
-
Warum nicht einfach per "Hand".
x,y Der Mauskoordinaten holen und dann einfach testen:
if(x>=10 && x<=100 && y>=10 && y<=100) { geklickt im Rechteck }
Kreis:
Gegeben Mittelpunkt des Kreises m=(mx,my), Radius r
geholte Mauskoordinaten X,Yif ((x-mx)(x-mx)+(y-my)(y-my)<= r*r) { geklickt im Kreis }
-
super danke funktioniert einwandfrei
danke für die schnelle Antwort!!