Можно ли переключаться между только числовым и буквенно-цифровым режимами ввода для элемента управления 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);
5

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

Других решений пока нет …