Udostępnij za pośrednictwem


Jak korzystać z operacji edycji tekstu sformatowanego

Aplikacja może wysyłać komunikaty w celu pobrania lub znalezienia tekstu w kontrolce edycji zaawansowanej. Możesz pobrać zaznaczony tekst lub określony zakres tekstu.

Aby uzyskać zaznaczony tekst w kontrolce edycji sformatowanej, użyj komunikatu EM_GETSELTEXT. Tekst jest kopiowany do określonej tablicy znaków. Należy upewnić się, że tablica jest wystarczająco duża, aby pomieścić zaznaczony tekst oraz znak null na końcu.

Aby pobrać określony zakres tekstu, użyj komunikatu EM_GETTEXTRANGE. Struktura TEXTRANGE używana z tym komunikatem określa zakres tekstu do pobrania i wskazuje tablicę znaków, która odbiera tekst. W tym miejscu aplikacja musi upewnić się, że tablica jest wystarczająco duża dla określonego tekstu oraz końcowego znaku null.

Ciąg można wyszukać w kontrolce edycji rozbudowanej za pomocą komunikatów EM_FINDTEXT lub EM_FINDTEXTEX, albo ich odpowiedników Unicode, EM_FINDTEXTW i EM_FINDTEXTEXW. Struktura FINDTEXT używana z wersjami bez rozszerzenia określa zakres tekstu do przeszukania oraz ciąg do znalezienia. Wersje rozszerzone używają struktury FINDTEXTEX, która określa te same informacje, a także otrzymuje punkty początkowe i końcowe zakresu znaków znalezionego tekstu. Można również określić takie opcje, jak to, czy wyszukiwanie uwzględnia wielkość liter.

Co musisz wiedzieć

Technologii

  • kontrolek systemu Windows

Warunki wstępne

  • C/C++
  • Programowanie interfejsu użytkownika systemu Windows

Instrukcje

Użycie operacji Rich Edit Text

Poniższa przykładowa funkcja znajduje określony tekst w zaznaczonym tekście w kontrolce edycji sformatowanej obsługującej kod Unicode. Jeśli cel zostanie znaleziony, stanie się nowym wyborem.

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;
    
}

Uwagi

Program Microsoft Rich Edit 3.0 obsługuje również funkcję Edytora Metod Wprowadzania HexToUnicode (IME), która umożliwia użytkownikowi przekształcanie kodów szesnastkowych na Unicode przy użyciu klawiszy skrótu. Aby uzyskać więcej informacji, zobacz HexToUnicode IME.

Używanie kontrolek rozszerzonej edycji

pokaz wspólnych kontrolek systemu Windows (CppWindowsCommonControls)