Односимвольное текстовое поле winApi

Можно ли сделать односимвольное текстовое поле? Другими словами, после ввода 1 символа он не должен вводить другие символы, которые будет набирать пользователь;

1

Решение

Для редактирования использовать EM_LIMITTEXT (или эквивалентное сообщение EM_SETLIMITTEXT).
Для рихедита вам нужно EM_LIMITTEXT или же EM_EXLIMITTEXT для значений длины текста больше 64000

Если вы используете MFC, чем вам нужно CEdit :: LimitText или же CRichEditCtrl :: LimitText

3

Другие решения

Да, вы можете ограничить длину текста в текстовом поле, отправив 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)

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector