Chaîne de composition

La chaîne de composition est le texte actuel dans la fenêtre de composition. Il s’agit du texte que l’IME convertit en caractères finaux. Chaque chaîne de composition se compose d’une ou plusieurs « clauses ». Une clause est la plus petite combinaison de caractères que l’IME peut convertir en caractère final. Pour obtenir et définir la chaîne de composition, l’application appelle respectivement les fonctions ImmGetCompositionString et ImmSetCompositionString .

Lorsque l’utilisateur entre du texte dans la fenêtre de composition, l’IME suit l’état de la chaîne de composition. Cet état inclut les informations d’attribut, les informations de clause, les informations de saisie et la position du curseur. L’application peut récupérer l’état de composition à l’aide de la fonction ImmGetCompositionString .

Les informations d’attribut sont affichées dans un tableau de valeurs 8 bits qui spécifie l’état des caractères dans la chaîne de composition. Tous les caractères d’une clause doivent avoir le même attribut. Le tableau inclut une valeur pour chaque octet de la chaîne, y compris un octet chacun pour le prospect et le deuxième octet de tous les caractères double octets de la chaîne. Pour chaque valeur du tableau, les bits 0 à 3 peuvent être une combinaison des valeurs suivantes.

Valeur Signification
ATTR_INPUT Caractère entré par l’utilisateur. L’IME n’a pas encore converti ce caractère.
ATTR_INPUT_ERROR Caractère d’erreur que l’IME ne peut pas convertir. Par exemple, l’IME ne peut pas rassembler certaines consonnes.
ATTR_TARGET_CONVERTED Caractère sélectionné par l’utilisateur, puis converti par l’IME.
ATTR_CONVERTED Caractère que l’IME a déjà converti.
ATTR_TARGET_NOTCONVERTED Caractère converti. L’utilisateur a sélectionné ce caractère, mais l’IME n’a pas encore converti.
ATTR_FIXEDCONVERTED Caractères que l’IME ne convertit plus.

 

Toutes les autres valeurs sont réservées. En japonais, tout caractère non converti ayant l’attribut ATTR_INPUT est un caractère hiragana, katakana ou alphanumérique. En coréen, cet attribut représente un caractère Hangul que l’IME n’a pas encore converti. Dans le chinois traditionnel et le chinois simplifié, chaque IME peut limiter son caractère dans une certaine plage.

Les informations de clause incluses dans l’état de la chaîne de composition sont un tableau de valeurs 32 bits qui spécifie les positions des clauses dans la chaîne de composition. Le tableau inclut une valeur pour chaque clause et une valeur finale qui spécifie la longueur de la chaîne complète. Chaque valeur du tableau spécifie le décalage, en octets, du début de la chaîne à la clause. La première valeur est toujours 0, car la première clause commence toujours au début de la chaîne. Par exemple, si une chaîne a deux clauses, les informations de clause ont trois valeurs : la première valeur est 0, la deuxième valeur est le décalage de la deuxième clause, et la troisième valeur est la longueur de la chaîne. Pour Unicode, la position d’une clause est comptabilisée en caractères Unicode, et la longueur d’une chaîne est la taille des caractères Unicode.

Les informations de saisie incluses dans l’état de la chaîne de composition sont une chaîne de caractères null qui représente les caractères entrés par l’utilisateur au clavier.

La position du curseur incluse dans l’état de la chaîne de composition est une valeur indiquant la position du curseur par rapport aux caractères de la chaîne de composition. La valeur est le décalage, en octets, du début de la chaîne. Si cette valeur est 0, le curseur est juste avant le premier caractère de la chaîne. Si la valeur est égale à la longueur de la chaîne, le curseur est immédiatement après le dernier caractère. Si la valeur est 1, le curseur n’est pas présent. Pour Unicode, la position et la longueur sont mesurées en caractères Unicode.

Votre application peut définir la chaîne de composition ou les éléments de l’état de composition à l’aide de la fonction ImmSetCompositionString . Pour vous assurer que la fenêtre de composition met à jour son apparence en fonction de ces modifications, la fonction permet à l’application d’envoyer un message de notification à la fenêtre. Les applications qui définissent une combinaison d’éléments d’état de composition désactivent généralement les notifications pour tous, mais le dernier appel à cette fonction afin qu’un seul message de notification soit généré pour la fenêtre de composition.

Enfin, le contrôle d’édition prend en charge deux messages pour modifier la gestion des chaînes de composition par l’IME. Pour plus d’informations, consultez EM_GETIMESTATUS et EM_SETIMESTATUS. Pour plus d’informations sur le contrôle d’édition, consultez Modifier le contrôle.

À propos du Gestionnaire de méthodes d’entrée