TranslateAccelerator

Funcția TranslateAccelerator procese accelerator chei pentru comenzile de meniu. Funcția se traduce un WM_KEYDOWN sau WM_SYSKEYDOWN mesaj la un mesaj WM_COMMAND sau WM_SYSCOMMAND (dacă există o intrare pentru cheie în tabelul specificat accelerator) și apoi trimite WM_COMMAND WM_SYSCOMMAND mesaj direct la procedura fereastra corespunzătoare. TranslateAccelerator nu se întoarce până când procedura fereastra prelucrat mesajul.

 int () TranslateAccelerator HWND  hWnd, / / ocupa destinație fereastraHACCELhAccTable, / / ocupa accelerator tabelLPMSGlpMsg / / adresa de structura cu mesaj);
 

Parametrii

hWnd
Ocupa în fereastra ale căror mesaje sunt să fie traduse.
hAccTable
Ocupa la un tabel de accelera?ie. Tabelul de accelera?ie trebuie să au fost încărcate de un apel la funcția de LoadAccelerators sau create de un apel la funcția de CreateAcceleratorTable.
lpMsg
Indicator spre o structură MSG care conține informații mesaj adus din coada de mesaje firul apel utilizând funcția GetMessage sau PeekMessage.

Valorile întroarse

Dacă funcția reușește, valoarea returnată este nenul.

Dacă funcția nu reușește, valoarea returnată este zero. Pentru a obține extins informa?ii eroare, apel GetLastError.

Observații

Să se diferențieze mesajul că această funcție trimite la mesajele trimise de meniuri sau controale, cuvântul high-ordinea de parametrul wParam WM_COMMAND sau WM_SYSCOMMAND mesaj conține valoarea 1.

Accelerator combinații de taste utilizată pentru a selecta elemente din meniul fereastră sunt traduse în mesaje WM_SYSCOMMAND; toate celelalte combinații de taste accelerator sunt traduse în WM_COMMAND mesaje.

Atunci când TranslateAccelerator returnează o valoare nenul și mesajul este tradus, cererea nu trebuie să utilizați funcția TranslateMessage să proceseze mesajul din nou.

Un accelerator nevoie corespunde cu o comandă de meniu.

Dacă comanda de accelera?ie corespunde un element de meniu, se trimite cererea mesaje WM_INITMENU și WM_INITMENUPOPUP , ca în cazul în care utilizatorul s-au încercat pentru a afișa meniul. Cu toate acestea, aceste mesaje sunt trimise în cazul în care există unul dintre următoarele condi?ii:

Dacă fereastra specificat este fereastra activă și nici o fereastră are focalizarea tastaturii (care, în general, este cazul dacă fereastra este minimizată), TranslateAccelerator traduce mesaje WM_SYSKEYUP și WM_SYSKEYDOWN în loc de WM_KEYUP și WM_KEYDOWN mesaje.

Dacă o acționare de taste accelerator apare care corespunde unui element de meniu când fereastra care deține meniul este minimizat, TranslateAccelerator nu a trimite un mesaj WM_COMMAND. Cu toate acestea, dacă o acționare de taste accelerator apare care nu se potrivește oricare din elementele din meniul fereastră sau în meniul fereastră , funcția trimite un mesaj WM_COMMAND, chiar dacă fereastra este minimizată.

Windows CE: Toate mesajele de accelerator cheie sunt traduse în mesaje WM_COMMAND; Windows CE nu acceptă mesajul WM_SYSCOMMAND.

QuickInfo

nbsp; Windows &NT: necesită versiunea 3.1 sau mai târziu.
Windows:Necesită Windows 95 sau o versiune ulterioară.
Windows CE:Necesită versiunea 1.0 sau mai târziu.
Antet:A declarat în winuser.h.
Import Biblioteca:Utilizarea user32.lib.
Unicode:Pus în aplicare ca Unicode și ANSI versiuni Windows NT.

A se vedea, de asemenea

Claviatură Accelerators prezentare generală, funcții Accelerator tastatură, CreateAcceleratorTable, GetMessage, LoadAccelerators, MSG, PeekMessage, SetCapture, TranslateMessage, WM_COMMAND, WM_INITMENU, WM_INITMENUPOPUP, WM_KEYDOWN, WM_SYSKEYDOWN, WM_SYSCOMMAND

Index