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);
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.
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.
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.
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