Limitarea textul introdus de utilizator

Limita implicită la valoarea de text, un utilizator poate introduce într-un control de editare este 32 kilobytes. Cererea poate modifica valoarea text utilizatorul introduce prin trimiterea controlul un mesaj EM_SETLIMITTEXT . Acest mesaj stabilește o limită de greu de la numărul de octeți utilizatorul poate introduce într-un control de editare, dar afectează textul care este deja în controlul atunci când mesajul a fost trimis nici text copiat controlul de funcția SetDlgItemText sau WM_SETTEXT mesajul. De exemplu, să presupunem că aplicația utilizează funcția SetDlgItemText să plaseze 500 octeți într-un control de editare, iar utilizatorul introduce, de asemenea, 500 octeți (total de 1000 de octeți). Dacă aplicarea apoi trimite un mesaj EM_SETLIMITTEXT limitarea textul introdus de utilizator, la 300 de octeți, 1000 de octeți deja în comanda Editare rămâne acolo și utilizatorul nu pot adăuga orice mai mult text. Pe de altă parte, dacă aplicația trimite un mesaj EM_SETLIMITTEXT limitarea textul introdus de utilizator la 1300 de octeți, 1000 de octeți rămâne, dar utilizatorului posibilitatea de a adăuga 300 bytes mai multe.

Când utilizatorul atinge limita de caractere de un control de editare, sistemul trimite cererea un mesaj WM_COMMAND , care con?ine un mesaj de notificare EN_MAXTEXT . Acest mesaj de notificare nu înseamnă că memoria a fost epuizată, dar că a fost atins limita pentru textul introdus de utilizator; utilizatorul poate introduce orice mai mult text. Pentru a modifica această limită, cererea trebuie să trimită controlul un mesaj nou de EM_SETLIMITTEXT cu o limită mai mare.

Ca un exemplu de utilizare a EM_SETLIMITTEXT și EN_MAXTEXT, să presupunem că cererea trebuie să se limiteze utilizator la nu mai mult de patru caractere într-un control de editare. Cererea ar folosi EM_SETLIMITTEXT pentru a specifica o limită de patru caractere. În cazul în care utilizatorul a încercat să introduceți un caracter al cincilea, sistemul ar trimite un mesaj de notificare a EN_MAXTEXT aplicarea.

Index