In einer Anwendung, in der ich viele Schlüssel anders behandeln muss, möchte ich alle Fälle in WM_KEYDOWN behandeln und WM_CHAR überhaupt nicht verwenden. Ist es möglich, das korrekte ASCII/UNICODE-Zeichen aus einer Sequenz von WM_KEYDOWN angegebenen virtuellen Schlüsseln zu erhalten, anstatt auf dem regulären TranslateMsg/WM_CHAR zu vertrauen?Unicode-Zeichen in WM_KEYDOWN erhalten
Als ein Beispiel: die Anwendung sollte in der Lage sein, Shift-B auf eine völlig andere Art und Weise zu handhaben, die ein reguläres B von CTRL-B drückt.
Mit MapVirtualKey verwenden Sie nicht den Status der Tasten Umschalt, Strg und Alt, oder zumindest nicht, dass ich sehen kann.
Als Leo Davidson antwortete: Sie können den ToUnicode-Aufruf verwenden, um die VK -> Unicode-Konvertierung selbst durchzuführen.
Das weiß ich. Ich stellte die Frage, um zu sehen, ob die Logik von TranslateMsg, die das WM_CHAR sendet, auch mit einem anderen Pfad erreichbar ist, der keine Windows-Nachrichten verwendet (wie ein API-Aufruf) –
@Ritsaert Hornstra: Fair genug. Siehe meine Bearbeitung. –
Das sieht vielversprechend aus: Wird es direkt ausprobieren! Einen neuen WinAPI Anruf jeden Tag erlernen. –