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