Jak interagować z bieżącym zaznaczeniem
Użytkownik może wybrać tekst w rozszerzonej kontrolce edycji przy użyciu myszy lub klawiatury. bieżącego zaznaczenia jest zakresem zaznaczonych znaków lub położeniem punktu wstawiania, jeśli nie wybrano żadnych znaków. Aplikacja może uzyskać informacje o bieżącym zaznaczeniu, ustawić je, określić, kiedy się zmienia, oraz pokazać lub ukryć podświetlenie zaznaczenia.
Co musisz wiedzieć
Technologie
Warunki wstępne
- C/C++
- Programowanie interfejsu użytkownika systemu Windows
Instrukcje
Interakcja z bieżącym zaznaczeniem
Aby określić bieżące zaznaczenie w kontrolce edycji wzbogaconej, użyj komunikatu EM_EXGETSEL. Aby ustawić bieżący wybór, użyj komunikatu EM_EXSETSEL. Struktura CHARRANGE jest używana zarówno z komunikatami, jak i do określania zakresu znaków. Aby pobrać informacje o zawartości bieżącego zaznaczenia, możesz użyć komunikatu EM_SELECTIONTYPE.
Aplikacja może wykryć, kiedy bieżący wybór ulegnie zmianie, przetwarzając kod powiadomienia EN_SELCHANGE. Kod powiadomienia określa strukturę SELCHANGE zawierającą informacje o nowym zaznaczeniu. Kontrolka edycji wzbogaconej wysyła ten kod powiadomienia tylko wtedy, gdy włączysz go przy użyciu komunikatu EM_SETEVENTMASK.
Domyślnie kontrolka edycji wzbogaconej pokazuje i ukrywa wyróżnienie zaznaczenia, gdy zyskuje i traci fokus. Możesz pokazać lub ukryć wyróżnienie zaznaczenia w dowolnym momencie, używając komunikatu EM_HIDESELECTION. Na przykład aplikacja może udostępnić okno dialogowe Wyszukiwanie, aby znaleźć tekst w kontrolce edycji sformatowanej. Aplikacja może wybrać pasujący tekst bez zamykania okna dialogowego, w tym przypadku musi użyć komunikatu EM_HIDESELECTION w celu wyróżnienia zaznaczenia.
Podobnie jak w przypadku kontrolek edycji, można określić styl okna ES_NOHIDESEL, aby zapobiec ukrywaniu wyróżnienia zaznaczenia podczas utraty fokusu przez zaawansowaną kontrolkę edycji.
Alternatywą dla korzystania z komunikatów EM_EXGETSEL i EM_EXSETSEL jest możliwość pobrania oraz ustawienia aktualnego wyboru za pomocą komunikatów sterujących edytorem EM_GETSEL i EM_SETSEL. Komunikat EM_GETSEL pakuje dwa 16-bitowe indeksy znaków do jego 32-bitowej wartości zwracanej i dlatego działa tylko w przypadku wyborów, które należą całkowicie do pierwszych 64K. Jednak kontrolka edycji wzbogaconej nigdy nie będzie zawierać więcej niż 32K znaków tekstu, chyba że ten limit zostanie rozszerzony przy użyciu komunikatu EM_LIMITTEXT lub EM_EXLIMITTEXT. W przypadku zaznaczeń wykraczających poza pierwsze 64 KB tekstu komunikat EM_GETSEL zwraca wartość –1. W takim przypadku nadal można użyć wartości zwracanych w wParam i lParam, aby określić początek i koniec zaznaczenia.
Tematy pokrewne