Можно ли переключаться между только числовым и буквенно-цифровым режимами ввода для элемента управления CEdit?

У меня есть несколько переключателей, которые определяют тип ввода для CEdit контроль. По своему дизайну мой элемент управления CEdit принимает цифры и символы.

Есть ли способ ограничить этот ввод только цифрами, только когда пользователь нажимает на предоставленную кнопку-переключатель? Кроме того, когда пользователь нажимает на другую опцию (то есть буквенно-цифровой режим), можно ли вернуться обратно?

Я настроил свой CEdit элемент управления для приема буквенно-цифровых символов с помощью графического интерфейса Visual C++ (т. е. щелкните правой кнопкой мыши элемент управления -> Свойства -> вкладка "Стили" -> выберите "Число").

Пример использования:

  1. Пользователь запускает приложение.
  2. Пользователь нажимает на какую-то кнопку, и этот диалог с CEdit контроль в рассмотрении показывает.
  3. Пользователю предоставляются переключатели, в которых буквенно-цифровая кнопка выбрана по умолчанию (поскольку это режим по умолчанию, установленный во время разработки).
  4. Пользователь нажимает на цифру.

На данный момент я хочу ограничить ввод CEdit контролировать только номера. Точно так же, после этого, если пользователь снова нажимает буквенно-цифровую радиокнопку, я хочу снять это ограничение.

1 ответ

Решение

Да использовать CEdit::ModifyStyle() установить или очистить стиль ES_NUMBER.

Итак, чтобы он принимал только цифры:

CEdit *pEdit = // get your control here ...
pEdit->ModifyStyle(0, ES_NUMBER);

И вернуться к принятию всех символов:

pEdit->ModifyStyle(ES_NUMBER, 0);
Другие вопросы по тегам