![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Riddik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 2.12.2006 Репутация: нет Всего: нет |
Как лучше всего реализовать ввод только float значений - т.е. цифр и точки?
EDITTEXT в диалоговом окне, в ф-ии обработчике жду уведомления EN_CHANGE, там смотрю введённые значения:
Жутко коряво. Есть ли способ удалять неверный символ по-другому? Да ешё SetDlgItemTextW снова шлёт уведомления и при каждом вводе два раза обработка идёт. Не эффективно. Это сообщение отредактировал(а) Riddik - 24.5.2013, 12:30 |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
Можно подать b в функцию _input по шаблону "%f" и смотреть, на каком символе закончился разбор b: если FILE::_ptr указывает на последний символ ( '\0' ), то все норм., просто число недописано, в противном случае - FILE::_ptr будет указывать на неверный символ. Но я бы не рекомендовал делать посимвольную проверку уже просто потому, что пользователю может потребоваться сформировать float в экспоненциальной форме - это с буквой 'E' и знаком показателя после нее. Не уверен, что такая запись пройдет посимвольную проверку. Т.е. вполне возможно, что например значение 0.345E-16 пользователь вести уже не сможет. Делайте разбор значения по нажатию "Enter". -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
Riddik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 2.12.2006 Репутация: нет Всего: нет |
Спасибо)
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |