Re: Tastaturcode bekommen
2. Okt 2005, 19:18
Man muss natuerlich lernen was man da wirklich kriegt.
Von der Tastatur bekommt man zuerst Scan Codes. Diese werden mit Hilfe des aktuellen Tastaturlayouts in virtuelle Keycodes uebersetzt.
Bis hierhin lebt man noch in der Welt der Tasten nicht der Zeichen. Es gibt also noch gar kein kleines a.
Erst die naechste Uebersetzungsstufe macht daraus Zeichen. Erst dann macht das kleine a ueberhaupt Sinn.
VK_A ist also Ord('A') nicht Ord('a').
Die ganze Tastaturverwaltung ist noch erheblich komplizierter.
Da gibt es z. B. noch die Dead Keys. Das sind die Tasten die erst nach der folgenden Taste ueberhaupt ein Zeichen ergeben.
OnKeyDown und OnKeyUp entsprechen den Windows-Messages WM_KEYDOWN und WM_KEYUP. Diese operieren auf virtuellen Keycodes.
Erst die Verarbeitung der Messages mit TranslateMessage erzeugt dann WM_CHAR Messages die OnKeyPress entsprechen. Dort bekommt man dann Zeichen.
Die Umsetzung ist nicht 1 zu 1. WM_KEYDOWN : VK_SHIFT, WM_KEYDOWN : VK_A, WM_KEYUP : VK_A, WM_KEYUP : VK_SHIFT loest nur ein WM_CHAR : 'a' aus.
|