Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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?

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.

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)

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?
  • Autor
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.

Nimm in dem Case den Wert für die Taste 5 und frag bei GetKeyState(VK_SHIFT). Diese sagt dir dann ob shift gedrückt ist oder nicht

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.