Utilisation des informations sur les mots et les sauts de ligne

Un contrôle Rich Edit appelle une fonction appelée procédure d’interruption de mot pour rechercher des sauts entre les mots et pour déterminer où elle peut couper les lignes. Le contrôle utilise ces informations lors de l’exécution d’opérations de retour automatique à la ligne et lors du traitement des combinaisons de touches CTRL + Flèche gauche et CTRL + Flèche droite. Une application peut envoyer des messages à un contrôle Rich Edit pour remplacer la procédure de césure par défaut, pour récupérer des informations de césure de mots et pour déterminer la ligne sur laquelle se trouve un caractère donné.

Bon à savoir

Technologies

Prérequis

  • C/C++
  • Windows Programmation de l’interface utilisateur

Instructions

Utiliser les informations sur les mots et les sauts de ligne

Les procédures de césure de mots pour les contrôles RichEdit sont similaires à celles des contrôles d’édition, mais elles ont des fonctionnalités supplémentaires : les procédures d’arrêt de mot pour les deux types de contrôles peuvent déterminer si un caractère est un délimiteur et peut Rechercher l’arrêt de mot le plus proche avant ou après la position spécifiée. Un délimiteur est un caractère qui marque la fin d’un mot, tel qu’un espace. En règle générale, dans un contrôle d’édition, un saut de mot se produit uniquement après les délimiteurs. Toutefois, différentes règles s’appliquent à la plupart des langues asiatiques.

Les procédures de césure de mots pour les contrôles RichEdit regroupent également des caractères dans des classes de caractères, chacune identifiée par une valeur comprise entre 0x00 et 0x0F. Des arrêts se produisent après des délimiteurs ou entre des caractères de classes différentes. Par conséquent, une procédure de césure lexicale avec des classes différentes pour les caractères alphanumériques et de ponctuation trouvera deux césures de mots dans la chaîne « Win.doc » (avant et après le point).

La classe d’un caractère peut être combinée avec zéro, un ou plusieurs indicateurs de césure lexicale pour former une valeur 8 bits. Lors de l’exécution d’opérations de retour automatique à la ligne, un contrôle RichEdit utilise des indicateurs de césure lexicale pour déterminer où il peut couper les lignes. La modification riche utilise les indicateurs de césure de mots suivants.

Indicateur Description
WBF _ BREAKAFTER Les lignes peuvent être brisées après le caractère.
WBF _ BREAKLINE Le caractère est un délimiteur. Les délimiteurs marquent les extrémités des mots. Les lignes peuvent être rompues après les délimiteurs.
WBF _ ISWHITE Le caractère est un espace blanc. Les espaces blancs de fin ne sont pas inclus dans la longueur d’une ligne lors de l’encapsulation.

La _ valeur WBF BREAKAFTER est utilisée pour permettre l’encapsulation après un caractère qui ne marque pas la fin d’un mot, tel qu’un trait d’Union.

Vous pouvez remplacer la procédure de césure par défaut d’un contrôle RichEdit par votre propre procédure à l’aide du message em _ SETWORDBREAKPROC . Pour plus d’informations sur les procédures de césure de mots, consultez la description de la fonction EditWordBreakProc .

Notes

Ce remplacement n’est pas recommandé pour Microsoft Rich Edit 2,0 et versions ultérieures, en raison de la complexité de la césure des mots multilingues.

Pour Microsoft Rich Edit 1,0, vous pouvez utiliser le message em _ SETWORDBREAKPROCEX pour remplacer la procédure de coupure de mots étendue par défaut par une fonction EditWordBreakProcEx . Cette fonction fournit des informations supplémentaires sur le texte, telles que le jeu de caractères. Vous pouvez utiliser le message em _ GETWORDBREAKPROCEX pour récupérer l’adresse de la procédure d’arrêt de mot étendu en cours. Notez que Microsoft Rich Edit 2,0 et versions ultérieures ne prennent pas en charge EditWordBreakProcEx, em _ GETWORDBREAKPROCEX et em _ SETWORDBREAKPROCEX.

Vous pouvez utiliser le message em _ FINDWORDBREAK pour rechercher les césures de mots ou pour déterminer les indicateurs de classe et de césure de mots d’un caractère. À son tour, le contrôle appelle sa procédure de césure lexicale pour récupérer les informations demandées.

Pour déterminer la ligne sur laquelle se trouve un caractère donné, vous pouvez utiliser le message em _ EXLINEFROMCHAR .

Utilisation de contrôles RichEdit

Windows démonstration des contrôles communs (CppWindowsCommonControls)