Problem mit der Keymap



  • Hallo,

    gibt es eine Möglichkeit, den an OnKeyDown/Up etc. übergebenen nChar-Wert auf die aktuell verwendete KeyMap anzuwenden? Ja, irgendwie blöd beschrieben :/.

    Also wenn ich jetzt zum Beispiel ein Z auf der deutschen KeyMap habe, kriege ich das ja als nChar übergeben. Mein Problem: Gibt es eine Möglichkeit, daraus jetzt das Y zu gewinnen, wenn eine englische KeyMap verwendet wird?

    Wie immer, danke für Antworten und so 🙂



  • So schwer ??

    BYTE getkey_english( BYTE key_german)
    {
      const BYTE keymap_german[] = { 'A', 'B', 'C', ... 'Y', 'Z' };
      const BYTE keymap_english[] = { 'A', 'B', 'C', ... 'Z', 'Y' };
      for( int i=0; i<sizeof(keymap_german); i++)
        if( keymap_german[i] == key_german)
          return keymap_english[i];
      return 0;
    }
    


  • Wenn es sehr schnell sein soll, kannst Du natürlich auch (niemand hindert Dich daran) eine std::map nehmen und die Werte da eintragen



  • Danke erstmal für deine Antwort 🙂

    So weit ist mir das ganze klar. Aber wie kann ich jetzt herausfinden, ob er User eine deutsche oder englische Keymap verwendet?



  • MSDN:

    GetLocaleInfo
    The GetLocaleInfo function retrieves information about a locale.

    int GetLocaleInfo(
    LCID Locale, // locale identifier
    LCTYPE LCType, // information type
    LPTSTR lpLCData, // information buffer
    int cchData // size of buffer
    );


Anmelden zum Antworten