Funzione TranslateAcceleratorA (winuser.h)
Elabora i tasti di scelta rapida per i comandi di menu. La funzione converte un messaggio WM_KEYDOWN o WM_SYSKEYDOWN in un messaggio WM_COMMAND o WM_SYSCOMMAND (se è presente una voce per la chiave nella tabella dell'acceleratore specificata) e quindi invia il messaggio WM_COMMAND o WM_SYSCOMMAND direttamente alla routine della finestra specificata. TranslateAccelerator non restituisce finché la routine della finestra non ha elaborato il messaggio.
Sintassi
int TranslateAcceleratorA(
[in] HWND hWnd,
[in] HACCEL hAccTable,
[in] LPMSG lpMsg
);
Parametri
[in] hWnd
Tipo: HWND
Handle della finestra i cui messaggi devono essere tradotti.
[in] hAccTable
Tipo: HACCEL
Handle per la tabella dell'acceleratore. La tabella dell'acceleratore deve essere stata caricata da una chiamata alla funzione LoadAccelerators
[in] lpMsg
Tipo: LPMSG
Puntatore a una struttura msg di
Valore restituito
Tipo: int
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 estese sull'errore, chiamare GetLastError.
Osservazioni
Per distinguere il messaggio inviato da questa funzione dai messaggi inviati da menu o controlli, la parola dell'ordine elevato del parametro wParam del WM_COMMAND o WM_SYSCOMMAND messaggio contiene il valore 1.
Le combinazioni di tasti di scelta rapida usate per selezionare gli elementi nella finestra di menu vengono convertite in messaggi WM_SYSCOMMAND; tutte le altre combinazioni di tasti di scelta rapida vengono convertite in messaggi WM_COMMAND.
Quando
Un acceleratore non deve corrispondere a un comando di menu.
Se il comando acceleratore corrisponde a una voce di menu, l'applicazione viene inviata WM_INITMENU e WM_INITMENUPOPUP messaggi, come se l'utente tentasse di visualizzare il menu. Tuttavia, questi messaggi non vengono inviati se esistono una delle condizioni seguenti:
- La finestra è disabilitata.
- La combinazione di tasti di scelta rapida non corrisponde a un elemento nella finestra menu e la finestra è ridotta a icona.
- Un'acquisizione del mouse è attiva. Per informazioni sull'acquisizione del mouse, vedere la funzione SetCapture.
Se si verifica una sequenza di tasti di scelta rapida che corrisponde a una voce di menu quando la finestra proprietaria del menu è ridotta a icona, TranslateAccelerator non invia un messaggio WM_COMMAND. Tuttavia, se si verifica una sequenza di tasti di scelta rapida che non corrisponde ad alcun elemento nel menu della finestra o nel menu finestra, la funzione invia un messaggio WM_COMMAND, anche se la finestra è ridotta a icona.
Esempi
Per un esempio, vedere Creating Accelerators for Font Attributes.
Nota
L'intestazione winuser.h definisce TranslateAccelerator come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 2000 Professional [solo app desktop] |
server minimo supportato | Windows 2000 Server [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
winuser.h (include Windows.h) |
libreria |
User32.lib |
dll | User32.dll |
Vedere anche
concettuale
riferimento