2013-04-08 7 views
1

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

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

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

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

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

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

ответ

4

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

Таким образом, чтобы сделать его принимать только цифры:

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

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

pEdit->ModifyStyle(ES_NUMBER, 0); 
+0

Отлично! Он работает как сон. Огромное спасибо. –