TranslateAccelerator

De TranslateAccelerator functie verwerkt sneltoetsen voor menuopdrachten. De functie vertaalt een WM_KEYDOWN of WM_SYSKEYDOWN bericht om een bericht WM_COMMAND of WM_SYSCOMMAND (als er een vermelding voor de sleutel in de tabel opgegeven accelerator) en vervolgens stuurt de WM_COMMAND of WM_SYSCOMMAND rechtstreeks naar de juiste venster procedure. TranslateAccelerator retourneert niet totdat het venster procedure heeft het bericht verwerkt.

 int () TranslateAccelerator HWND  hWnd, / / verwerken naar bestemming vensterHACCELhAccTable, / / verwerken aan versneller tabelLPMSGlpMsg / / adres van structuur met bericht);
 

Parameters

hWnd
Ingang naar het venster waarvan de berichten moeten worden vertaald.
hAccTable
Ingang naar een tabel versneller. De versneller tabel moet zijn geladen door een aanroep van de functie LoadAccelerators of gemaakt door een aanroep van de functie CreateAcceleratorTable.
lpMsg
Pointer naar een MSG -structuur die berichtinformatie bevat ontvangen van berichtenwachtrij van de aanroepende thread met behulp van de functie GetMessage of PeekMessage.

Retourwaarden

Als de functie slaagt, is de retourwaarde aan nul.

Als de functie mislukt, is de retourwaarde nul. Te krijgen uitgebreide foutinformatie, Bel GetLastError.

Opmerkingen

Bevat de waarde 1 om te onderscheiden van het bericht dat deze functie van berichten die worden verzonden door menu's of besturingselementen, de eersterangs woord van de wParam -parameter van de WM_COMMAND of WM_SYSCOMMAND bericht stuurt.

Accelerator toetsencombinaties gebruikt om items te selecteren in het menu venster worden vertaald in WM_SYSCOMMAND berichten; alle andere versneller toetsencombinaties zijn vertaald in WM_COMMAND berichten.

Wanneer TranslateAccelerator geeft als een andere waarde dan nul en het bericht wordt vertaald resultaat, moet de toepassing de functie TranslateMessage niet gebruiken voor het verwerken van het bericht weer.

Een sneltoets moet niet correspondeert met een menuopdracht.

Als de accelerator opdracht komt overeen met een menu-item, is de toepassing WM_INITMENU en WM_INITMENUPOPUP berichten, verzonden alsof de gebruiker probeert om het menu weer te geven. Echter, deze berichten worden niet verzonden als een van de volgende voorwaarden bestaan:

Als het opgegeven venster het actieve venster is en geen venster de focus van het toetsenbord heeft (dat is in het algemeen het geval als het venster is geminimaliseerd), vertaalt TranslateAccelerator WM_SYSKEYUP en WM_SYSKEYDOWN berichten in plaats van WM_KEYUP en WM_KEYDOWN berichten.

Als een toetsaanslag versneller die correspondeert met een menu-item optreedt als het venster dat eigenaar is van het menu is geminimaliseerd, doet TranslateAccelerator een WM_COMMAND-bericht niet verzenden. Echter, als een versneller toetsaanslag die niet overeenkomt met een van de items in het menu van het venster of in het menu venster optreedt , verzendt de functie een WM_COMMAND-bericht, zelfs als het venster is geminimaliseerd.

Windows CE: Alle accelerator kernboodschappen zijn vertaald in WM_COMMAND berichten; Windows CE ondersteunt niet het WM_SYSCOMMAND bericht.

Syntaxisinfo

nbsp; Windows &NT: versie 3.1 of hoger vereist.
Windows:Windows 95 of hoger vereist.
Windows CE:Versie 1.0 of hoger vereist.
Header:Verklaard in winuser.h.
Bibliotheek importeren:User32.lib gebruiken.
Unicode:Geďmplementeerd als Unicode en ANSI-versies van Windows NT.

Zie ook

Overzicht toetsenbord sneltoetsen, Toetsenbord Versneller functies, CreateAcceleratorTable, GetMessage, LoadAccelerators, MSG, PeekMessage, SetCapture, TranslateMessage, WM_COMMAND, WM_INITMENU, WM_INITMENUPOPUP, WM_KEYDOWN, WM_SYSKEYDOWN, WM_SYSCOMMAND

Index