Utilisation des opérations de modification de texte enrichi

Une application peut envoyer des messages pour récupérer ou Rechercher du texte dans un contrôle RichEdit. Vous pouvez récupérer le texte sélectionné ou une plage de texte spécifiée.

Pour obtenir le texte sélectionné dans un contrôle Rich Edit, utilisez le message em _ GETSELTEXT . Le texte est copié dans le tableau de caractères spécifié. Vous devez vous assurer que le tableau est suffisamment grand pour contenir le texte sélectionné, plus un caractère null de fin.

Pour récupérer une plage de texte spécifiée, utilisez le message em _ GETTEXTRANGE . La structure TEXTRANGE utilisée avec ce message spécifie la plage de texte à récupérer et pointe vers un tableau de caractères qui reçoit le texte. Là encore, l’application doit s’assurer que le tableau est suffisamment grand pour le texte spécifié, plus un caractère null de fin.

Vous pouvez rechercher une chaîne dans un contrôle Rich Edit à l’aide des messages _ em TexteCherché ou em _ FINDTEXTEX , ou de leurs équivalents Unicode, em _ FINDTEXTW et em _ FINDTEXTEXW. La structure TexteCherché utilisée avec les versions non étendues spécifie la plage de texte à rechercher et la chaîne à rechercher. Les versions étendues utilisent une structure FINDTEXTEX , qui spécifie les mêmes informations et reçoit également les points de début et de fin de la plage de caractères du texte trouvé. Vous pouvez également spécifier des options comme si la recherche respecte la casse.

Bon à savoir

Technologies

Prérequis

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

Instructions

Utiliser une opération Rich Text Edit

L’exemple de fonction suivant recherche le texte spécifié dans le texte sélectionné dans un contrôle Rich Edit qui prend en charge Unicode. Si la cible est trouvée, elle devient la nouvelle sélection.

BOOL FindTextInSelection(HWND hRich, WCHAR* target)
{
    CHARRANGE selectionRange;
    
    SendMessage(hRich, EM_EXGETSEL, 0, (LPARAM)&selectionRange);
    
    FINDTEXTEX ftex;
    
    ftex.lpstrText  = target;
    ftex.chrg.cpMin = selectionRange.cpMin;
    ftex.chrg.cpMax = selectionRange.cpMax;
    
    LRESULT lr = SendMessage(hRich, EM_FINDTEXTEXW, (WPARAM)FR_DOWN, (LPARAM) &ftex);
    
    if (lr >= 0)
    {
        LRESULT lr1 = SendMessage(hRich, EM_EXSETSEL, 0, (LPARAM)&ftex.chrgText);
        
        SendMessage(hRich, EM_HIDESELECTION, (LPARAM)FALSE, 0);
        
        return TRUE;
    }
    
    return FALSE;
    
}

Notes

Microsoft Rich Edit 3,0 prend également en charge la fonction de l’éditeur de méthode d’entrée (IME) HexToUnicode, qui permet à un utilisateur d’effectuer une conversion entre des valeurs hexadécimales et Unicode à l’aide de touches d’accès rapide. Pour plus d’informations, consultez HEXTOUNICODE IME.

Utilisation de contrôles RichEdit

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