Partager via


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 les fonctions ImmGetCompositionString et ImmSetCompositionString , respectivement.

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

Les informations d’attribut sont affichées dans un tableau de valeurs 8 bits qui spécifie la status de 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 pour le prospect et le deuxième octet de tous les caractères codés sur deux octets dans 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 en cours de conversion. L’utilisateur a sélectionné ce caractère, mais l’IME ne l’a pas encore converti.
ATTR_FIXEDCONVERTED Caractères que l’IME ne convertira 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 hangûl que l’IME n’a pas encore converti. En chinois traditionnel et en chinois simplifié, chaque IME peut limiter son caractère dans une certaine plage.

Les informations de clause incluses dans la chaîne de composition status 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, entre le début de la chaîne et 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 comptée en caractères Unicode et la longueur d’une chaîne est la taille en caractères Unicode.

Les informations de saisie incluses dans la chaîne de composition status sont une chaîne de caractères terminée par une valeur Null représentant les caractères que l’utilisateur entre au clavier.

La position du curseur incluse dans la chaîne de composition status est une valeur qui indique 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 se trouve juste avant le premier caractère de la chaîne. Si la valeur est égale à la longueur de la chaîne, le curseur se trouve 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 la composition status à l’aide de la fonction ImmSetCompositionString. Pour s’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 de status de composition désactivent généralement les notifications pour tous les appels à cette fonction sauf le dernier, 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