Kompositionszeichenfolge
Die Kompositionszeichenfolge ist der aktuelle Text im Kompositionsfenster. Dies ist der Text, den die IME in endgültige Zeichen konvertiert. Jede Kompositionszeichenfolge besteht aus einer oder mehreren "Klauseln". Eine -Klausel ist die kleinste Kombination von Zeichen, die die IME in ein endgültiges Zeichen konvertieren kann. Zum Abrufen und Festlegen der Kompositionszeichenfolge ruft die Anwendung die Funktionen ImmGetCompositionString bzw . ImmSetCompositionString auf.
Wenn der Benutzer Text in das Kompositionsfenster eingibt, verfolgt der IME die status der Kompositionszeichenfolge nach. Diese status enthält Attributinformationen, Klauselinformationen, Eingabeinformationen und Cursorposition. Die Anwendung kann die Komposition status mithilfe der Funktion ImmGetCompositionString abrufen.
Attributinformationen werden in einem Array von 8-Bit-Werten gerendert, das die status von Zeichen in der Kompositionszeichenfolge angibt. Alle Zeichen einer Klausel müssen das gleiche Attribut aufweisen. Das Array enthält einen Wert für jedes Byte in der Zeichenfolge, einschließlich jeweils einem Byte für die Lead- und zweiten Bytes aller Doppelbytezeichen in der Zeichenfolge. Für jeden Wert im Array können die Bits 0 bis 3 eine Kombination der folgenden Werte sein.
Wert | Bedeutung |
---|---|
ATTR_INPUT | Vom Benutzer eingegebenes Zeichen. Die IME muss dieses Zeichen noch konvertieren. |
ATTR_INPUT_ERROR | Ein Fehlerzeichen, das der IME nicht konvertieren kann. Beispielsweise kann die IME keine Konsonanten zusammenstellen. |
ATTR_TARGET_CONVERTED | Zeichen, das vom Benutzer ausgewählt und dann vom IME konvertiert wird. |
ATTR_CONVERTED | Zeichen, das die IME bereits konvertiert hat. |
ATTR_TARGET_NOTCONVERTED | Zeichen, das konvertiert wird. Der Benutzer hat dieses Zeichen ausgewählt, aber der IME hat es noch nicht konvertiert. |
ATTR_FIXEDCONVERTED | Zeichen, die vom IME nicht mehr konvertiert werden. |
Alle anderen Werte sind reserviert. Auf Japanisch ist jedes nicht konvertierte Zeichen mit dem ATTR_INPUT-Attribut ein Hiragana-, Katakana- oder alphanumerisches Zeichen. Auf Koreanisch stellt dieses Attribut ein Hangul-Zeichen dar, das vom IME noch nicht konvertiert wurde. In traditionellem Chinesisch und vereinfachtem Chinesisch kann jeder IME sein Zeichen innerhalb eines bestimmten Bereichs einschränken.
Die in der Kompositionszeichenfolge status enthaltenen Klauselinformationen sind ein Array von 32-Bit-Werten, das die Positionen der Klauseln in der Kompositionszeichenfolge angibt. Das Array enthält einen Wert für jede Klausel und einen letzten Wert, der die Länge der vollständigen Zeichenfolge angibt. Jeder Wert im Array gibt den Offset vom Anfang der Zeichenfolge bis zur -Klausel in Bytes an. Der erste Wert ist immer 0, da die erste Klausel immer am Anfang der Zeichenfolge beginnt. Wenn eine Zeichenfolge beispielsweise über zwei Klauseln verfügt, verfügen die Klauselinformationen über drei Werte: Der erste Wert ist 0, der zweite Wert ist der Offset der zweiten Klausel und der dritte Wert die Länge der Zeichenfolge. Bei Unicode wird die Position einer Klausel in Unicode-Zeichen gezählt, und die Länge einer Zeichenfolge entspricht der Größe in Unicode-Zeichen.
Die in der Kompositionszeichenfolge status enthaltenen Eingabeinformationen sind eine NULL-Zeichenfolge, die die Zeichen darstellt, die der Benutzer auf der Tastatur eingibt.
Die in der Kompositionszeichenfolge status enthaltene Cursorposition ist ein Wert, der die Position des Cursors relativ zu den Zeichen in der Kompositionszeichenfolge angibt. Der Wert ist der Offset vom Anfang der Zeichenfolge in Bytes. Wenn dieser Wert 0 ist, befindet sich der Cursor unmittelbar vor dem ersten Zeichen in der Zeichenfolge. Wenn der Wert gleich der Länge der Zeichenfolge ist, befindet sich der Cursor unmittelbar nach dem letzten Zeichen. Wenn der Wert 1 ist, ist der Cursor nicht vorhanden. Für Unicode werden sowohl Position als auch Länge in Unicode-Zeichen gemessen.
Ihre Anwendung kann die Kompositionszeichenfolge oder Elemente der Komposition status mithilfe der Funktion ImmSetCompositionString festlegen. Um sicherzustellen, dass das Kompositionsfenster seine Darstellung basierend auf diesen Änderungen aktualisiert, ermöglicht die Funktion der Anwendung, eine Benachrichtigung an das Fenster zu senden. Anwendungen, die eine Kombination aus Komposition status Elementen festlegen, deaktivieren in der Regel Benachrichtigungen für alle Bis auf den letzten Aufruf dieser Funktion, sodass nur eine Benachrichtigungsnachricht für das Kompositionsfenster generiert wird.
Schließlich unterstützt das Bearbeitungssteuerelement zwei Meldungen zum Ändern der Verarbeitung von Kompositionszeichenfolgen durch die IME. Weitere Informationen finden Sie unter EM_GETIMESTATUS und EM_SETIMESTATUS. Weitere Informationen zum Steuerelement bearbeiten finden Sie unter Steuerelement bearbeiten.
Zugehörige Themen