Eingegebenen Buchstaben auslesen
-
Hi!
Ich schreib im Moment ein kleines OpenGl-Spiel, und hänge ein wenig an einer Texteingabefenster Klasse (praktisch ein Edit-Feld).
Und zwar möchte ich den eingegeben Buchstaben irgendwie abfangen, und zwar nicht nur welche Taste auf der Tastatur gedrückt wurde (aka WM_KEYDOWN), sondern wirklich den Buchstaben(unter beachtung von Shift / Alt GR).
Bei dem normalen englischen Alphabet funktioniert folgendes:if( <shift nicht gedrückt> ) key += 32;Allerdings geht das nicht bei Sonderzeichen. Zusätzlich scheint WM_KEYDOWN ein englisches Tastaturlayout zu benutzen.
Gibt es also eine Möglichkeit den eingegebenen Buchstaben abzufragen?
-
Für alle die an der Lösung interressiert sind:
Bei WM_CHAR ist der übergebene Parameter gleichzusetzen mit dem eingetippten Buchstaben, es wird ein ASCII-Code übertragen, der also mit Umlauten usw. umgehen kann. Da z.B. die Umlaute einen Ascii-Code haben der größer ist als 127 verwende ich unsigned char, was eine anschließende Abgrenzung von den Steuerzeichen einfacher macht, da Zeichen > 127 nicht negativ werden.
case WM_CHAR: { unsigned char chASCIIKeyPressed = wParam; if( chASCIIKeyPressed < ' ' ) //Steuerzeichen! { ... } break; }