Condividi tramite


Contesto di input

Un "contesto di input" è una struttura interna gestita da IMM. Contiene informazioni sullo stato dell'IME e vengono utilizzate dalle finestre IME. Per impostazione predefinita, il sistema operativo crea e assegna un contesto di input a ogni thread. All'interno del thread, questo contesto di input predefinito è una risorsa condivisa ed è associato a ogni finestra appena creata.

Per recuperare o impostare informazioni nell'IME, un'applicazione compatibile con IME deve prima recuperare un handle nel contesto di input associato a una finestra specificata. L'applicazione recupera l'handle usando la funzione ImmGetContext . Può usare l'handle recuperato nelle chiamate successive alle funzioni IMM per recuperare e impostare valori IME, ad esempio lo stile della finestra di composizione, lo stile di composizione e la posizione della finestra di stato. Al termine dell'uso del contesto, l'applicazione deve rilasciare il contesto usando la funzione ImmReleaseContext .

Poiché il contesto di input predefinito è una risorsa condivisa, tutte le modifiche apportate dall'applicazione vengono applicate a tutte le finestre del thread. Tuttavia, l'applicazione può eseguire l'override di questo comportamento predefinito creando il proprio contesto di input e associandolo a una o più finestre del thread. Le modifiche apportate a un contesto di input specifico dell'applicazione si applicano solo alle finestre associate al contesto.

L'applicazione può creare un contesto di input usando la funzione ImmCreateContext . Per assegnare il contesto a una finestra, l'applicazione chiama la funzione ImmAssociateContext . Questa funzione restituisce un handle al contesto di input associato in precedenza. Se l'applicazione non ha già associato un contesto di input alla finestra, l'handle restituito è per il contesto di input predefinito. In genere, l'applicazione salva questo handle e successivamente lo riassocia con la finestra quando il contesto di input personalizzato non è più necessario.

Quando un contesto di input è associato a una finestra, il sistema operativo seleziona automaticamente il contesto quando la finestra viene attivata e riceve lo stato attivo per l'input. Lo stile e altre informazioni nel contesto di input influiscono sull'input della tastiera successivo per tale finestra, determinando il funzionamento dell'IME.

L'applicazione deve eliminare definitivamente qualsiasi contesto di input personalizzato prima che termini. In primo luogo, l'applicazione rimuove il contesto di input da qualsiasi associazione creata con le finestre nel thread usando la funzione ImmAssociateContext . Chiama quindi la funzione ImmDestroyContext .

Informazioni su Gestione metodi di input