Trên khuôn mặt của nó, bạn nên để có thể kiểm soát này sử dụng thông điệp EM_LIMITTEXT
:
Thông điệp EM_LIMITTEXT giới hạn chỉ có văn bản người dùng có thể nhập. Nó không ảnh hưởng đến bất kỳ văn bản đã có trong kiểm soát chỉnh sửa khi tin nhắn được gửi, cũng không ảnh hưởng đến độ dài của văn bản được sao chép vào điều khiển chỉnh sửa bằng thông điệp WM_SETTEXT. Nếu một ứng dụng sử dụng thông điệp WM_SETTEXT để đặt nhiều văn bản hơn vào một điều khiển chỉnh sửa hơn được chỉ định trong thông báo EM_LIMITTEXT, người dùng có thể chỉnh sửa toàn bộ nội dung của điều khiển chỉnh sửa.
Trước khi EM_LIMITTEXT được gọi, giới hạn mặc định cho số lượng văn bản mà người dùng có thể nhập trong điều khiển chỉnh sửa là 32,767 ký tự.
Và thông báo này được hiển thị bởi thuộc tính MaxLength
của TEdit
.
Tuy nhiên, đặt MaxLength
thành giá trị lớn không có vẻ hữu ích. Tôi không thể thuyết phục một điều khiển chỉnh sửa dòng để hiển thị một số lượng lớn các ký tự.
Tôi cho rằng tùy chọn khả thi duy nhất cho bạn là sử dụng điều khiển chỉnh sửa nhiều dòng, đó là TMemo
.
Tôi chắc chắn MS sẽ cho rằng các điều khiển chỉnh sửa dòng đơn không được thiết kế để chứa hàng nghìn ký tự và do đó họ không có động lực để làm cho kiểm soát đó có khả năng hơn.
FWIW, với phiên bản Unicode của điều khiển, điểm cắt xuất hiện ở 37444 thay vì 37440!
Nguồn
2013-07-04 19:45:02
Nếu chúng tôi đang sử dụng hệ điều hành tương tự, bạn sẽ có thể hiển thị hơn 37440 ký tự nếu bạn sử dụng '.' f.i. thay vì 'X'. Điều này ngụ ý rằng các giới hạn được quy định trong tài liệu MS không có nghĩa gì cả, vì thay vào đó bạn nhấn các giới hạn tùy ý được áp đặt bởi các chi tiết thực hiện. –
Có, trong trường hợp này nó sẽ bị giới hạn trong 43679 dấu chấm – EProgrammerNotFound
Và sau đó nếu bạn sử dụng. , bạn không phải dính vào các phiên bản W của các cuộc gọi api nếu bạn sử dụng chuỗi đó trong một? – Glenn1234