Ograniczanie tekstu wprowadzanego przez użytkownika

Domyślny limit ilości tekstu, którą można wprowadzać w formancie edycji wynosi 32 kilobajty. Aplikację można zmienić ilość tekstu, jakie użytkownik może wpisać wysyłając kontroli wiadomość EM_SETLIMITTEXT . Ten komunikat ustawia sztywnym ograniczeniem liczby bajtów użytkownika można wprowadzać w formancie edycyjnym, ale ma wpływ na tekst, który znajduje się już w formancie, kiedy wiadomość została wysłana ani tekst skopiowany do kontroli przez funkcję SetDlgItemText lub komunikat WM_SETTEXT . Na przykład załóżmy, że aplikacja używa funkcji SetDlgItemText do 500 bajtów w formancie edycji, a użytkownik wprowadzi również 500 bajtów (suma 1 000 bajtów). Jeśli następnie aplikacja wysyła wiadomość EM_SETLIMITTEXT ograniczenie tekstu wprowadzanego przez użytkownika do 300 bajtów, 1000 bajtów już w formancie edycyjnym pozostawania, a użytkownik nie może dodawać więcej tekstu. Z drugiej strony jeżeli aplikacji wysyła wiadomość EM_SETLIMITTEXT ograniczenie tekstu wprowadzanego przez użytkownika do 1300 bajtów, pozostają 1000 bajtów, ale użytkownik może dodawać 300 większej liczby bajtów.

Gdy użytkownik osiąga limit znaków formant edycyjny, system wysyła wniosek wiadomość WM_COMMAND zawierający komunikat powiadamiania EN_MAXTEXT . Ten komunikat powiadomienia nie oznacza, że pamięć została wyczerpana, ale został wyczerpany limit dla tekstu wprowadzanego przez użytkownika; użytkownik nie może wprowadzić więcej tekstu. Aby zmienić ten limit, aplikacja musi wysłać kontroli nową wiadomość EM_SETLIMITTEXT z podwyższonego limitu.

Na przykład korzystanie z EM_SETLIMITTEXT i EN_MAXTEXT Załóżmy, że aplikacja musi ograniczyć użytkownika o nie więcej niż czterech znaków w formancie edycyjnym. Stosowanie użyłby EM_SETLIMITTEXT aby określić limit czteroznakowa. Jeśli użytkownik próbował wprowadzić piąty znak, system wyśle powiadomienie EN_MAXTEXT do aplikacji.

Index