Zum Inhalt springen

WM_KEYDOWN und Virtual-Key codes


Empfohlene Beiträge

Ich will in einem Programm das Verhalten bei verschiedenen Tastendrücken in PreTranslateMessage abändern.

Dazu prüfe ich halt wParam das ja bei WM_KEYDOWN den virtual-key code enthält.

Das Problem ist aber das sich da Codes irgendwie überschneiden.

Ich will zum einen auf die Pfeiltasten reagieren können (VK_RIGHT, VK_DOWN usw) und zum anderen auf alle Sonderzeichen über den Tasten von 1 bis 8. Also vom Ausrufezeichen bis zur Klammer auf.

Dabei scheinen aber das % und VK_LEFT beides für die 37 zu stehen. Das selbe Problem ist bei 2 anderen Pfeiltasten. Wie kann das sein?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Vielleicht war ich eben nicht deutlich genug: Es gibt keinen Keycode für %, denn es gibt keine %-Taste. Dafür gibt es einen Keycode für die linke Shifttaste, obwohl die für sich allein kein Zeichen erzeugt.

Wenn du Zeichen erkennen willst, die über Zusatzfunktionen der Tasten wie z.B. Shift erzeugt werden, musst du den Status der Zusatztaste überwachen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Vielleicht war ich eben nicht deutlich genug: Es gibt keinen Keycode für %, denn es gibt keine %-Taste. Dafür gibt es einen Keycode für die linke Shifttaste, obwohl die für sich allein kein Zeichen erzeugt.

Wenn du Zeichen erkennen willst, die über Zusatzfunktionen der Tasten wie z.B. Shift erzeugt werden, musst du den Status der Zusatztaste überwachen.

Also "VK_SHIFT & VK_5" ?

oder gibt es sowas wie bool ShiftisDown() ?

aber was ist dann bei dir VK_DOLLAR ? (widerspricht ja deiner Logik)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also "VK_SHIFT & VK_5" ?
Nein. Bitweise Und schon mal gar nicht. Außerdem liefert WM_KEYDOWN immer nur eine Taste, selbst wenn du es schaffen würdest, beide Tasten gleichzeitig zu drücken.

oder gibt es sowas wie bool ShiftisDown() ?
Es gibt GetAsyncKeyState. Man kann auch einfach den Zustand der Shift-Taste nachverfolgen, die löst ja auch Key-Nachrichten aus.

aber was ist dann bei dir VK_DOLLAR ? (widerspricht ja deiner Logik)
Bei mir gibt's kein VK_DOLLAR. Was soll das sein?
Link zu diesem Kommentar
Auf anderen Seiten teilen

Vielleicht war ich eben nicht deutlich genug: Es gibt keinen Keycode für %, denn es gibt keine %-Taste. Dafür gibt es einen Keycode für die linke Shifttaste, obwohl die für sich allein kein Zeichen erzeugt.

Wenn du Zeichen erkennen willst, die über Zusatzfunktionen der Tasten wie z.B. Shift erzeugt werden, musst du den Status der Zusatztaste überwachen.

hmm ja stimmt, mit leerem Magen kann ich nicht denken. Danke.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...