Teken berichten vertalen

Elke thread die karakter input van de gebruiker ontvangt moet de functie TranslateMessage in haar lus bericht opnemen. Deze functie onderzoekt de virtuele-sleutel code van een toetsaanslag bericht en, als de code komt overeen met een teken, een teken bericht plaatst in de berichtenwachtrij. Het teken bericht is verwijderd en verzonden op de volgende iteratie van de lus bericht; de parameter wParam van het bericht bevat de tekencode.

In het algemeen, moet van een draad bericht lus de functie TranslateMessage te vertalen van elk bericht, niet alleen virtueel-toets berichten. Hoewel TranslateMessage geen effect op andere soorten berichten heeft, garandeert het dat invoer van het toetsenbord correct is vertaald. Het volgende voorbeeld ziet u hoe u de functie TranslateMessage in een typische draad bericht lus.

terwijl (GetMessage (amp; msg, (HWND) NULL, 0, 0)) {als (TranslateAccelerator (hwndMain, haccl, & msg) == 0) {TranslateMessage(&msg); 
        DispatchMessage(&msg); 
    } 
} 
 

Index