Можно ли сделать односимвольное текстовое поле? Другими словами, после ввода 1 символа он не должен вводить другие символы, которые будет набирать пользователь;
Для редактирования использовать EM_LIMITTEXT (или эквивалентное сообщение EM_SETLIMITTEXT).
Для рихедита вам нужно EM_LIMITTEXT или же EM_EXLIMITTEXT для значений длины текста больше 64000
Если вы используете MFC, чем вам нужно CEdit :: LimitText или же CRichEditCtrl :: LimitText
Да, вы можете ограничить длину текста в текстовом поле, отправив EM_SETLIMITTEXT сообщение. Если вам нужно ограничение в один символ:
const int maximum_length = 1;
SendMessage(hEdit, EM_SETLIMITTEXT, maximum_length, 0);
нота: EM_LIMITTEXT
а также EM_SETLIMITTEXT
являются идентификаторами для одного и того же сообщения. Это константы с одинаковым числовым значением. Два идентификатора существуют по историческим причинам. (EM_SETLIMITTEXT
является новым из Win95 / WinNT 4.0 SDK)