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;
    }
    

Anmelden zum Antworten