Problem mit Koordinaten und GetAsyncKeyState(VK_LBUTTON)



  • Hallo, erstmal möchte ich mein Problem verdeutlichen... hier mein Code:

    POINT mPos; 
       GetCursorPos(&mPos);
       if(mPos.x >= 557 && mPos.x <= 626 && mPos.y >= 398 && mPos.y <= 477)
    
    {
     if(GetAsyncKeyState(VK_LBUTTON) &1) 
    {
    ...
    

    bzw. Variante zwei:

    POINT mPos; 
    GetCursorPos(&mPos);
    if(mPos.x >= 557 && mPos.x <= 626 && mPos.y >= 398 && mPos.y <= 477 && GetAsyncKeyState(VK_LBUTTON) &1)
    
    {	
    ...
    

    Wenn ich jetzt im definierten Koordinatenbereich die Maus klicke, funktioniert alles perfekt.

    ABER

    Wenn ich jetzt irgnedwo innerhalb meines Programms die Maus klicke und mich anschließend erst mit der Maus in den Koordinatenbereich bewege, wird der Code ebenfalls ausgeführt. Das möchte ich natührlich nicht und für mich ergibt es kein Sinn warum das so ist. Bei Variante zwei könnte ich als Anfänger gerade so mit leben aber in Variante eins verstehe ich das überhaupt nicht, da erst die Koordinaten geprüft werden und falls TRUE erst anschließend auf den Mausclick gewartet wird.

    Es sieht so aus als ob das Programm dem Mausclick irgendwie zwischenspeichert?
    Oder woran könnte es liegen?

    Wie bekomme ich das nun hin, dass der Code nur ausgeführt wird wenn auch alles stimmt?

    Sprich

    Wenn innerhalb der Coordinate die Maus geklickt wird ....
    Wenn nicht, soll nichts passieren...

    Ich hoffe mir kann jemand helfen... 😞

    .................

    **
    EDIT:**

    Ich konnte das Problem endlich lösen.

    Bei jedem letzten Klick bleibt der Mauspointer ja an der Koordinate stehen. Dadurch erkennt das Programm bei Prüfung immer die alte Position einmal erneut und führte den Befehl so bei Klick 2 mal aus... Sehr interessant 🙂

    Indem ich nun einfach den Mauspointer immer wieder nach jedem Klick auf x:0 y:0 verschieben lasse, passiert dies nun nicht mehr!

    Gruss

    B

    beitrag kann geschlossen werden.



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten