La funzione TranslateAccelerator elabora i tasti di scelta rapida per i comandi di menu. La funzione si traduce un WM_KEYDOWN o messaggio WM_SYSKEYDOWN a un messaggio WM_COMMAND o WM_SYSCOMMAND (se c'è una voce nella tabella specificata acceleratore della chiave) e quindi invia il WM_COMMAND o WM_SYSCOMMAND direttamente alla routine di finestra appropriato. TranslateAccelerator non viene restituito finché la routine della finestra ha elaborato il messaggio.
int (TranslateAccelerator HWND hWnd, / / handle alla finestra di destinazioneHACCELhAccTable, / / handle alla tabella acceleratorMsgmsg / / indirizzo della struttura con messaggio);
Se la funzione ha esito positivo, il valore restituito è diverso da zero.
Se la funzione ha esito negativo, il valore restituito è zero. Per ottenere informazioni di errore estese, chiamare GetLastError.
Per differenziare il messaggio che questa funzione Invia da messaggi inviati dal menu o controlli, la parola di ordine superiore del parametro wParam del messaggio WM_SYSCOMMAND o WM_COMMAND contiene il valore 1.
Combinazioni di tasti acceleratore utilizzate per selezionare gli elementi dal menu finestra vengono tradotti in messaggi WM_SYSCOMMAND; tutte le altre combinazioni di tasti acceleratore sono tradotti in un messaggio WM_COMMAND.
Quando TranslateAccelerator restituisce un valore diverso da zero e il messaggio viene tradotto, l'applicazione non deve utilizzare la funzione TranslateMessage per elaborare il messaggio nuovo.
Un acceleratore bisogno non corrisponde a un comando di menu.
Se il comando acceleratore corrisponde a una voce di menu, l'applicazione viene inviato messaggi WM_INITMENU e WM_INITMENUPOPUP , come se l'utente stavano cercando di visualizzare il menu. Tuttavia, questi messaggi non vengono inviati se presenti le condizioni seguenti:
Se la finestra specificata è la finestra attiva e nessuna finestra ha lo stato attivo della tastiera (che è generalmente il caso se la finestra è ridotto al minimo), TranslateAccelerator traduce messaggi WM_SYSKEYUP e WM_SYSKEYDOWN anziché WM_KEYUP e WM_KEYDOWN messaggi.
Se una sequenza di tasti acceleratore si verifica che corrisponde a una voce di menu quando è ridotto a icona la finestra che possiede il menu, TranslateAccelerator non invia un messaggio WM_COMMAND. Tuttavia, se una sequenza di tasti acceleratore si verifica che non corrisponde a uno qualsiasi degli elementi nel menu della finestra o nel menu , la funzione Invia un messaggio WM_COMMAND, anche se la finestra è ridotto al minimo.
Windows CE: Tutti i messaggi chiave acceleratore sono tradotti in messaggi WM_COMMAND; Windows CE non supporta il messaggio WM_SYSCOMMAND.
nbsp; Windows &NT: richiede 3.1 o versione successiva.
Windows:Richiede Windows 95 o versioni successive.
Windows CE:Richiede la versione 1.0 o successiva.
Intestazione:Dichiarati in winuser.
Importare librerie:Utilizzare user32.lib.
Unicode:Implementato come versioni Unicode e ANSI su Windows NT.
Panoramica di acceleratori di tastiera, tastiera acceleratore funzioni, CreateAcceleratorTable, GetMessage, LoadAccelerators, MSG, PeekMessage, SetCapture, TranslateMessage, WM_COMMAND, WM_INITMENU, WM_INITMENUPOPUP, WM_KEYDOWN, WM_SYSKEYDOWN, WM_SYSCOMMAND
Rimedio: Inserire il CD-ROM CD di MSDN Library.