Edit не дает вводить дробные числа

Общие вопросы, не зависящие от языка реализации.

Модераторы: Duncon, Hawk, Romeo, Eugie

Ответить
AlexDav
Сообщения: 34
Зарегистрирован: 18 окт 2005, 15:37

Edit не дает вводить дробные числа — как исправить?
Было св-во Number TRUE, поставил FALSE теперь когда нажимаю точку переходит в начало и ставит в результате вместо 5,2 в окне 0,52
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

В какой среде пишем?
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
AlexDav
Сообщения: 34
Зарегистрирован: 18 окт 2005, 15:37

в VS 7.0

Сделал так - перед вызовом UpDate() запоминаю положение курсора - после повторного вызова устанавливаю его. Но често как то это коряво.
Аватара пользователя
WinMain
Сообщения: 929
Зарегистрирован: 14 янв 2005, 10:30
Откуда: Москва
Контактная информация:

Неправильно ты делаешь. Для этого лучше использовать субклассинг. Создаёшь класс, производный от CEdit, например CNumEdit. В нём перехватываешь сообщение WM_CHAR и делаешь так, чтобы обработчик пропускал только цифры, точку или запятую, знак минус(если нужно) и символ VK_BACK. Остальные символы он должен просто игнорировать. С помощью DDX объект этого класса должен быть связан с соответствующим элементом окна диалога. Вот и всё.
Ответить