Maus Koordinaten außerhalb seines Fensters erhalten



  • Foxx90 schrieb:

    aber leider nur solange die Maus sich innerhalb meines Fensters befindet... Wie kann ich
    die Position der Maus bekommen, auch wenn sie nicht in meinem Fenster ist....

    Also eigentlich ist es de facto egal, WO die Maus (genauer: der Cursor) gerade ist. Dein Problem wird wahrscheinlich eher sein, dass Du keine (Maus-)Nachrichten bekommst, wenn der Cursor 'Deine Anwendung verlässt'. Dann müsst Du auf Martin's Tipp zurückgreifen (oder ich hab grad etwas total falsch verstanden 🤡 ).

    PS: Schließe mich der Frage an 'Was hast Du vor ?' ^^ ... BTW: Wie wär es mit Timern - Hooks bringen immer eine Menge Performanceverlust mit sich.



  • Timern ?? Kannst du mir sagen wie ? wüsste da nich direct was mit timern 😕

    Ich will nix besonderes machen , halt nur genau das in einem Beispiel programm lernen ... also wenn hooks nich soo gut sind dann erkläre deinen idee mit den timern bitte 😉

    danke schon mal für die antworten 😉

    mfg



  • Also ich weiß ja immer noch nicht genau, was Du machen willst, aber das mit Timern meinte ich so ➡

    // In Deiner WndProc:
    case WM_CREATE:
      SetTimer(hWnd, 1000, 1000, NULL);
      break;
    
    case WM_TIMER:
      // hier das machen, was jede Sekunde gemacht werden soll...
      // z.B.: GetCursorPos(...);
      break;
    
    case WM_DESTROY:
      KillTimer(hWnd, 1000);
      break;
    

    Siehe MSDN für weitere Informationen.



  • aso... nee das meinte ich nich ..
    Was ich meinte ist :

    Ich hab ein Fenster (das nur 200x300 pixel groß ist) . Darin befinden sich 2 Textboxen (x,y)Coords für die maus... So ich will nun die Curser Position bekommen (GetCurserPos) und die werden dann andauernd ins textfeld geschrieben... soweit so gut.. aber die werden leider nur geändert wenn der curser (maus) innerhalb meines Fensters ist... klar... Ich wollte im Prinzip wissen, wie ich die Mausmessage bekomm auch wenn der Curser nicht in meinem Windows ist... zu den
    SendWindowsHookEx hab ich garnix gefunden ! also bei google....wenn das die Lösung ist bitte kurz erklären 😛 😉

    Danke mfg 🙂



  • So hab mir jetztz alles angeguckt! Ansich müsste ja SetCaption(mainhwnd) meine wal sein ... Nur wenn ich den Befehl benutzte, ändern sich nix daran, das die MouseMessages nur innerhalb des Fensters empfangen werden^^ 😞 😕

    helft!

    mfg



  • So müßte es gehen:

    case WM_PAINT
    BeginPaint();
    TextOut(MausX);
    TextOut(MausY);
    EndPaint();
    
    case WM_LBUTTONDOWN
    SetCapture();
    
    case WM_LBUTTONUP
    ReleaseCapture(); //Maus wieder freigeben
    
    case WM_MOUSEMOVE
    MausX = ...
    MausY = ...
    InvalidateRect();
    UpdateWindow();
    


  • Foxx90 schrieb:

    zu den SendWindowsHookEx hab ich garnix gefunden !

    Es heißt ja auch SetWindowsHookEx 😉



  • Hi, mit GetCurserPos(&POINT) kann ich die Position der Maus herausbekommen ... aber leider nur solange die Maus sich innerhalb meines Fensters befindet...

    seit wann das denn!?



  • Also ich glaub ich mach falsch ! Alle eure Ideen mit SetCaption funktionieren nicht! Die Koordinaten werden ans Fenster gesendet, wenn die Maus drin ist!
    Was kann man falsch machen ? Ist evt ein Problem das ist dem Mainhwnd nur die Styles WS_VISIBLE | WS_SYSMENU übergeben hab ? ich wollte das man das Fenster nich verändern kann...

    mfg



  • gib mir bitte mal deine eMail.. hab vor kurzen son project gehabt.. und würde dir dann mal mein Quelltext geben... dann kannst dus dir mal anschaun.

    Gruß Tobi.



  • foxkroe@online.de

    Danke für dein Interesse mit zu helfen

    Gruß FoX



  • Foxx90 schrieb:

    Alle eure Ideen mit SetCaption funktionieren nicht!

    Du meinst SetCapture() ?
    Der Code von keksekekse funzt natürlich nur solange die linke Maus gedrückt ist 😉

    Je nachdem was du vorhast könnte GetCursorPos() und TrackMouseEvent() auch was für dich sein...



  • okay, kannst mal ins postfach schaun. habs dir geschickt

    Gruß Tobi.



  • Hat geklaapt danke Tobi

    Gruß Chris



  • alles klar...
    ist zwar net der beste quelltext aber erfunktioniert 🙂
    und du kannst dien mausspeed einstellen *g*, freut mich des alles klappt.

    Gruß Tobi.


Anmelden zum Antworten