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
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.
Tematy pokrewne