Problem: gleichzeitiges drücken von zwei Tasten (VK_UP und VK_RIGHT)
-
Hallo,
ich arbeite gerade an einem Mausemulator für Laptops. Wer mit dem Touchpad nicht klar kommt kann damit den Cursor einfach per Tastatur steuern. Ich kann den Cursor schon horizontal und vertikal bewegen jedoch nicht diagonal.int static CPosX = 50; int static CPosY = 50; int static Empf = 10;CPosX und CPosY geben die Cursorposition an.
case WM_KEYDOWN: switch(wParam) { case VK_LEFT: if(CPosX!=0) CPosX=CPosX-Empf; break; case VK_RIGHT: if(CPosX!=1280) CPosX=CPosX+Empf; break; case VK_DOWN: if(CPosY!=1024) CPosY=CPosY+Empf; break; case VK_UP: if(CPosY!=0) CPosY=CPosY-Empf; break; case VK_UP && VK_RIGHT: //Hier ist das Problem CPosY=CPosY-Empf; CPosX=CPosX+Empf; break; } SetCursorPos(CPosX,CPosY); return 0;So jetzt bewegt sich der Cursor, nur halt nicht diagonal.
-
GetKeyState oder GetAsncKeyState gibts da noch
-
kannst du mir da ein beispiel geben. der petzold erklärts so blöd.
-
guck in die msdn oder psdk
if(GetKeyState(VK_DOWN) & 0x1000000000000000) -> Taste gedürckt
mit asnckeystate ists genauso
-
was hat 0x1000000000000000 zu bedeuten
-
Leon++++ schrieb:
was hat 0x1000000000000000 zu bedeuten
If the high-order bit is 1, the key is down; otherwise, it is up.
-
So mein Mausemulator funktioniert jetzt. wie kann ich verhindern dass der Cursor den Bildschirm verlässt?
-
is nich schwer...
überleg dir einfach die grenzen in der sich der cursor bewegen darf...