Jeder Thread, der Zeicheneingabe der Benutzer erhält muss die Funktion TranslateMessage in seine Meldungsschleife enthalten. Diese Funktion prüft den virtuelle Tastencode ein Tastenanschlag Nachricht und wenn der Code eines Zeichens entspricht platziert eine Charakter-Nachricht in der Warteschlange für Nachrichten. Die Charakter-Nachricht entfernt und an die nächste Iteration der Nachrichtenschleife versandt; der wParam -Parameter der Nachricht enthält den Zeichencode.
Im Allgemeinen sollten Meldungsschleife des Threads die TranslateMessage -Funktion verwenden, um jede Nachricht, die nicht nur virtuelle Taste Nachrichten zu übersetzen. Obwohl TranslateMessage keine Auswirkungen auf andere Arten von Nachrichten hat, gewährleistet, dass Tastatureingaben korrekt übersetzt ist. Das folgende Beispiel veranschaulicht die Funktion TranslateMessage in einer typischen Thread-Meldungsschleife enthalten.
während (GetMessage (Amp; msg, (HWND) NULL, 0, 0)) {Wenn (TranslateAccelerator (HwndMain, Haccl, & msg) == 0) {TranslateMessage(&msg);
DispatchMessage(&msg);
}
}