TranslateAccelerator

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

Parametri

hWnd
Gestire alla finestra, i cui messaggi sono da tradurre.
hAccTable
Gestire a una tabella di acceleratore. La tabella di acceleratore deve è stata caricata da una chiamata alla funzione LoadAccelerators o creata da una chiamata alla funzione CreateAcceleratorTable.
msg
Puntatore a una struttura MSG che contiene le informazioni del messaggio recuperato dalla coda di messaggi del thread chiamante utilizzando la funzione GetMessage o PeekMessage.

Valori restituiti

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.

Osservazioni

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.

Descrizione

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.

Vedi anche

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.

Index