Archiv verlassen und diese Seite im Standarddesign anzeigen : Maus-Bewegungen erkennen ?
hi,
wie kann ich in windows bewegungen der maus nachverfolgen? insbesondere interessieren mich drag'n drop bewegungen mit der rechten maustaste
das ganze für C++
und da ich win-API-Nub bin, wären noch'n paar Infos gut, welche Header ich brauche und wo ich die herbekommen kann :)
Benutze die window-message WM_MOUSEMOVE um zu erkennen ob die maus bewegt wird. In lParam stehen die Koordinaten (loword = x, hiword = y). Die Koords. kannst du auch ohne message mit GetCursorPos(POINT) bekommen.
thx zapate,
ich habe inzwischen halb-wegs den durchblick über die erkennung von maus + tastatur eingaben, allerdings immer nur, wenn das aktuelle fenster aktiviert ist, wie kann ich denn mausbewegungen immer erkennen unabhängig davon, wo, mit welchem aktivierten fenster sie ausgeführt werden?
Diogenes
04.09.2002, 18:30
Funktion SetCapture ist ideal: Läßt das als Parameter angegebene Fenster alle Mausbotschaften empfangen, bis ReleaseCapture abgesetzt wurde.
Gefunden in der Windows API.
Site: SetCapture à la MSDN (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/mouseinput/mouseinputreference/mouseinputfunctions/setcapture.asp).
Unbedingt auch bei den Querverweisen lesen!
StoreMaster
04.09.2002, 22:56
@Lord_Otter
ja ist es und wird es auch ohne solche sinnlosposts bleiben!!
so nun reichts sogar mir langsam Lord_Otter's post gibts nimmer
howdie noch ein mal
so, meine mausbewegungen erkenne ich nun wie der adler das kaninchen ;)
problem ist noch: eben nur, wenn die mausbewegung im programm-eigenen fenster ausgeführt wird
wie schon erwähnt, soll das aber unabhängig vom aktuellen fenster von meinem programm erkannt werden (und das aktuelle fenster als handle an mein programm übergeben werden)
habe mal mit SetCapture unf GetCapture 'rum-probiert, allerdings war das nicht von erfolg gekrönt
vielleicht kann mir jemand nochmal nen tip oder nen code-schnipsel als denk-anstoss geben :)
GetCursorPos
das gibt die die aktuelle mouseposition zurueck
ich glaube du bist am schnellsten wenn du dir die moves dann selbst ausrechnest, ansonsten glaube ich gehts ueber hook's und das ist ein ei
Original geschrieben von xOOn
GetCursorPos
das gibt die die aktuelle mouseposition zurueck
ich glaube du bist am schnellsten wenn du dir die moves dann selbst ausrechnest, ansonsten glaube ich gehts ueber hook's und das ist ein ei
damit bekomme ich aber sicherlich nur die absolute position auf dem bildschirm und nicht das aktive fenster - richtig ?
Ja, aber mit den absoluten Koordinaten des Mauszeigers und denen des Fensters (GetWindowPlacement()) kannst du ja leicht die Position im Fenster rausfinden.
Original geschrieben von Malte 2
Ja, aber mit den absoluten Koordinaten des Mauszeigers und denen des Fensters (GetWindowPlacement()) kannst du ja leicht die Position im Fenster rausfinden.
ich würde sagen, das gibt nix:
BOOL GetWindowPlacement( HWND hWnd,
WINDOWPLACEMENT* lpwndpl
);
sinn der aktion wäre ja, das handle des aktiven fensters zu bekommen; ich müsste der funktion ja aber das handle des fenster übergeben :mauer:
Patrik Graf
17.09.2002, 16:36
GetActiveWindow könnte dir da unter umständen weiterhelfen... :D
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.