Freigeben über


Eingabekontext

Ein "Eingabekontext" ist eine interne Struktur, die vom IMM verwaltet wird. Sie enthält Informationen zum Status des IME und wird von IME-Fenstern verwendet. Standardmäßig erstellt und weist das Betriebssystem jedem Thread einen Eingabekontext zu. Innerhalb des Threads ist dieser Standardeingabekontext eine freigegebene Ressource und wird jedem neu erstellten Fenster zugeordnet.

Um Informationen im IME abzurufen oder festzulegen, muss eine IME-fähige Anwendung zuerst ein Handle für den Eingabekontext abrufen, der einem angegebenen Fenster zugeordnet ist. Die Anwendung ruft das Handle mithilfe der funktion ImmGetContext ab. Sie kann das abgerufene Handle in nachfolgenden Aufrufen der IMM-Funktionen verwenden, um IME-Werte abzurufen und festzulegen, z. B. das Kompositionsfensterformat, die Kompositionsformatvorlage und die Statusfensterposition. Nachdem die Anwendung den Kontext verwendet hat, muss sie den Kontext mithilfe der ImmReleaseContext--Funktion freigeben.

Da der Standardeingabekontext eine freigegebene Ressource ist, gelten alle Änderungen, die die Anwendung an ihr vorgibt, für alle Fenster im Thread. Die Anwendung kann dieses Standardverhalten jedoch außer Kraft setzen, indem sie einen eigenen Eingabekontext erstellt und einem oder mehreren Fenstern des Threads zugeordnet wird. Die An einem anwendungsspezifischen Eingabekontext vorgenommenen Änderungen gelten nur für die Fenster, die dem Kontext zugeordnet sind.

Ihre Anwendung kann einen Eingabekontext mithilfe der ImmCreateContext--Funktion erstellen. Zum Zuweisen des Kontexts zu einem Fenster ruft die Anwendung die ImmAssociateContext--Funktion auf. Diese Funktion gibt ein Handle an den zuvor zugeordneten Eingabekontext zurück. Wenn die Anwendung dem Fenster noch keinen Eingabekontext zugeordnet hat, gilt das zurückgegebene Handle für den Standardeingabekontext. In der Regel speichert die Anwendung dieses Handle und verknüpft es später erneut mit dem Fenster, wenn der angepasste Eingabekontext nicht mehr benötigt wird.

Sobald ein Eingabekontext einem Fenster zugeordnet ist, wählt das Betriebssystem diesen Kontext automatisch aus, wenn das Fenster aktiviert wird und den Eingabefokus erhält. Die Formatvorlage und andere Informationen im Eingabekontext wirken sich auf nachfolgende Tastatureingaben für dieses Fenster aus und bestimmen die Funktionsweise des IME.

Ihre Anwendung muss alle benutzerdefinierten Eingabekontexte zerstören, bevor sie beendet wird. Zunächst entfernt die Anwendung den Eingabekontext aus einer Zuordnung, die sie mit Fenstern im Thread erstellt hat, indem sie die ImmAssociateContext--Funktion verwenden. Anschließend wird die ImmDestroyContext Funktion aufgerufen.

über den Eingabemethoden-Manager