Funkcja TranslateAccelerator przetwarza klawiszy skrótu dla poleceń menu. Funkcja tłumaczy WM_KEYDOWN lub WM_SYSKEYDOWN wiadomość do WM_COMMAND lub WM_SYSCOMMAND wiadomości (jeśli istnieje jeden zapis dla klucza w tabeli podanego akceleratora), a następnie wysyła WM_COMMAND lub WM_SYSCOMMAND wiadomości bezpośrednio do procedury odpowiedniego okna. TranslateAccelerator zwraca dopóki procedura okno zostało przetworzone wiadomości.
int TranslateAccelerator ( HWND hWnd, / / dojście do okna przeznaczeniaHACCELhAccTable, / / dojście do akceleratora tabeliLPMSGlpMsg / / adresu struktury z wiadomości);
Jeśli funkcja, wartość zwracany jest różna od zera.
Jeśli funkcja zawiedzie, wartość zwracany jest równa zero. Aby uzyskać rozszerzonych informacji o błędach, należy wywołać GetLastError.
Odróżnienie wiadomości, że ta funkcja wysyła z wiadomości wysłane przez menu lub formanty, słowo wysokich numerach parametru wParam WM_COMMAND lub WM_SYSCOMMAND wiadomość zawiera wartość 1.
Kombinacje klawiszy skrótu używane do wybierz elementy z menu okno zostały przetłumaczone na WM_SYSCOMMAND wiadomości; wszystkie inne akceleratora kombinacje klawiszy są przekształcane wiadomości WM_COMMAND.
Podczas TranslateAccelerator zwraca wartość różną od zera i wiadomości jest tłumaczony, aplikacja nie należy używać funkcji TranslateMessage do przetwarza wiadomość ponownie.
Akcelerator nie musi odpowiadać polecenia menu.
Jeśli polecenie akceleratora odnosi się do elementu menu, aplikacja jest wysyłane wiadomości WM_INITMENU i WM_INITMENUPOPUP , tak, jakby użytkownik próbowano wyświetlić menu. Jednakże te wiadomości nie są wysyłane jeśli występuje którykolwiek z następujących warunków:
Jeśli określone okno jest aktywne okno i żadne okno nie ma fokusu klawiatury, (który jest zazwyczaj w przypadku, jeśli okno jest zminimalizowany), TranslateAccelerator tłumaczy wiadomości WM_SYSKEYUP i WM_SYSKEYDOWN zamiast wiadomości WM_KEYUP i WM_KEYDOWN.
Jeśli klawiszy skrótu występuje odpowiadający element menu, gdy okno, który jest właścicielem menu jest zminimalizowane, TranslateAccelerator nie wysłać wiadomość WM_COMMAND. Jednakże jeśli klawiszy skrótu występuje, które nie odpowiadają żadnym elementów w menu okna lub w menu okno , funkcja wysyła komunikat WM_COMMAND, nawet wtedy, gdy okno jest zminimalizowane.
Systemu Windows CE: Wszystkie wiadomości klawiszy skrótu zostały przetłumaczone na WM_COMMAND wiadomości; Windows CE nie obsługuje wiadomości WM_SYSCOMMAND.
nbsp; Windows &NT: wymagana wersja 3.1 lub nowsza.
Systemu Windows:Wymaga systemu Windows 95 lub nowszego.
Systemu Windows CE:Wymaga wersja 1.0 lub nowsza.
Nagłówka:Zadeklarowane w pliku winuser.h.
Importowanie biblioteki:Należy użyć user32.lib.
Unicode:Implementowane jako wersje Unicode i ANSI w systemie Windows NT.
Przegląd skróty klawiaturowe, funkcji akceleratora klawiatury, CreateAcceleratorTable, GetMessage, LoadAccelerators, MSG, PeekMessage, SetCapture, TranslateMessage, WM_COMMAND, WM_INITMENU, WM_INITMENUPOPUP, WM_KEYDOWN, WM_SYSKEYDOWN, WM_SYSCOMMAND