TranslateAccelerator

Funksjonen TranslateAccelerator behandler hurtigtastene for menykommandoer. Funksjonen oversetter, en WM_KEYDOWN eller WM_SYSKEYDOWN til en WM_COMMAND eller WM_SYSCOMMAND melding (Hvis det finnes en oppføring for nøkkelen i tabellen angitte hurtigtasten) og deretter sender WM_COMMAND eller WM_SYSCOMMAND melding direkte til den riktige vindusprosedyre. TranslateAccelerator ikke gå tilbake til vinduet prosedyren har behandlet meldingen.

 int () TranslateAccelerator HWND  hWnd, / / håndtere til målvinduetHACCELhAccTable, / / håndtere accelerator tabellLPMSGlpMsg / / adresse av strukturen med melding);
 

Parametere

hWnd
Håndtere til vinduet får meldinger er å bli oversatt.
hAccTable
Håndtere til en Web Slice-tabell. Tabellen akseleratoren må blitt lastet av et kall til funksjonen LoadAccelerators eller opprettet av et kall til funksjonen CreateAcceleratorTable.
lpMsg
Peker til en MSG -struktur som inneholder meldingsinformasjon Hentet fra den kallende tråden meldingskøen ved hjelp av funksjonen GetMessage eller PeekMessage.

Returverdier

Hvis funksjonen lykkes, er returverdien ikke-null.

Hvis funksjonen mislykkes, er verdien som returneres Null. Til å vise utvidet feilinformasjon, kan du ringe GetLastError.

Merknader

Å skille meldingen som sender denne funksjonen fra meldinger som er sendt av menyer eller kontroller, signifikante ordet for parameteren wParamWM_COMMAND eller WM_SYSCOMMAND meldingen inneholder verdien 1.

Accelerator tastekombinasjoner som brukes til å velge elementer fra vindu -menyen er oversatt til WM_SYSCOMMAND meldinger; alle andre accelerator tastekombinasjoner er oversatt til WM_COMMAND-meldinger.

Når TranslateAccelerator kommer tilbake en annen verdi enn null, og meldingen er oversatt, bør programmet ikke bruke TranslateMessage -funksjonen til å behandle meldingen på nytt.

Et hurtigvalg trenger ikke tilsvarer en menykommando.

Hvis kommandoen accelerator tilsvarer et menyelement, er søknaden sendt meldinger for WM_INITMENU og WM_INITMENUPOPUP , som om brukeren prøvde å vise menyen. Men sendes disse meldingene ikke hvis noen av følgende forhold finnes:

Hvis det angitte vinduet er det aktive vinduet, og ingen-vinduet har tastaturfokus (som vanligvis er tilfelle hvis vinduet er minimert), oversetter TranslateAccelerator WM_SYSKEYUP og WM_SYSKEYDOWN-meldinger istedenfor WM_KEYUP og WM_KEYDOWN-meldinger.

Hvis det oppstår et hurtigvalg-tastetrykk som tilsvarer et menyelement når vinduet som eier på menyen er minimert, sender ikke TranslateAccelerator en WM_COMMAND-melding. Men hvis det oppstår et hurtigvalg-tastetrykk som ikke samsvarer med noen av elementene i vinduets-menyen eller i vindu -menyen, sender funksjonen en melding i WM_COMMAND, selv om vinduet er minimert.

Windows CE: Alle accelerator viktige meldinger er oversatt til WM_COMMAND meldinger; Windows CE støtter ikke WM_SYSCOMMAND-meldingen.

Hurtiginformasjon

nbsp; Windows &NT: krever versjon 3.1 eller senere.
Windows:Krever Windows 95 eller senere.
Windows CE:Krever versjon 1.0 eller senere.
Topptekst:Deklarert i winuser.h.
Importere biblioteket:Bruk user32.lib.
Unicode:Implementert som Unicode- og ANSI-versjoner på Windows NT.

Se også

Tastatur gasspedalene oversikt, tastatur akseleratorfunksjoner, CreateAcceleratorTable, GetMessage, LoadAccelerators, MSG, PeekMessage, SetCapture, TranslateMessage, WM_COMMAND, WM_INITMENU, WM_INITMENUPOPUP, WM_KEYDOWN, WM_SYSKEYDOWN, WM_SYSCOMMAND

Index