|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.09.2022, 13:01 | #1 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Числовые значения в "edit".
Здравствуйте! Хотелось бы получить ответ вот на какой вопрос: Возможно ли в элементе управления "edit" работать с числовыми значениями? Поясню, про флаг ES_NUMBER я знаю, но возможно ли читать, как это делается при чтении строк, числа, допустим, unsigned int? И так же записывать. SendMessage(hEdit, EM_GETLINE, 0, &Val)
SendMessage(hEdit, EM_REPLACESEL, 0, (LPARAM)Val); Так как подобных сообщений я не нашёл можно предположить, что так работать нельзя, возможно, только вводить числовые значения в "edit". Но всё же хочу уточнить. |
24.09.2022, 13:18 | #2 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Нельзя. Но вам ни кто не мешает объявить свои функции чтения и записи в edit принимающие на вход число и возвращающие считанное число.
|
24.09.2022, 13:53 | #3 | |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Это как?
Код:
Цитата:
Я сделал, но мне кажется мой вариант не оптимальным т.к. я на каждый клик мыши по полосе прокрутки 1)Получаю строковое представления числа. 2)Конвертирую его в целое и увеличиваю или уменьшаю, соответственно. 3)Полученное число вновь преобразую, но теперь в строку. 4)Отправляю в редактор. Если бы с числами возможно было работать, то эта последовательность исчезла бы. |
|
24.09.2022, 13:58 | #4 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Не исчезла бы. Просто ее бы выполняла за вас система. На экране все числа могут быть отображены только после перевода их в текстовое представление. Для простоты перерисовки и универсальности функционирования системные компоненты edit работают только со строками, а преобразования выполняют прикладные программы.
|
24.09.2022, 20:14 | #5 |
фрилансер
Участник клуба
Регистрация: 11.10.2019
Сообщений: 1,018
|
apofioz, GetDlgItemInt / SetDlgItemInt
|
24.09.2022, 20:35 | #6 |
фрилансер
Участник клуба
Регистрация: 11.10.2019
Сообщений: 1,018
|
apofioz, кстати, глянь этот контрол Spin Controls
|
24.09.2022, 20:52 | #7 | |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Цитата:
|
|
25.09.2022, 06:04 | #8 | ||
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Цитата:
Объявить статическую переменную присвоить ей изначально нуль. в секции "scrollbar" выполнять над ней арифметику, перед выходом из секции, послать сообщение о том, что данные изменились и их нужно обновить. В секции "обновления" преобразовать переменную в строку и вывести/обновить значение в "edit". Как-то так хотел сделать, но как это реализовать, как отправить сообщение в ID_EDIT: не знаю.( А зачем тогда вообще стиль ES_NUMBER? Хорошо, ввёл я числа и что, как их считать из "edit", чтобы обработать. Хотите сказать, такой код оптимален? Код:
Цитата:
Интересный контрол, но мне нужен, именно, тот, который я изучил. Хотя это выглядит более изящно, что ли, а по функционалу, не знаю, такой же, как "edit", почти такой же. |
||
25.09.2022, 06:21 | #9 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Немного подправил:
Код:
|
25.09.2022, 11:43 | #10 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Этот фильтр ввода нужен для того, чтобы избежать ошибок преобразование string -> int. Без такого фильтра ввода пользователь вместо числа может вводить любой текст и вам перед преобразованием придется проверять строку на возможность преобразования в число или получите ошибку преобразования. С фильтром пользователь просто не сможет ввести символы отличные от цифр.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Необходимо написать "таймер", который будет запускаться при нажатии кнопки "Start", приостанавливаться на "Pause", и сбрасываться на "Reset" | billiejean78 | JavaScript, Ajax | 1 | 03.09.2021 08:58 |
Убрать папки "Pictures", "Music", "Видео", "Downloads" из "МОЙ КОМПЬЮТЕР" | Бахтиёр1916 | Windows | 1 | 05.04.2017 12:53 |
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") | ZIRASS | PHP | 4 | 15.06.2016 14:23 |
Возможно ли сделать выделение значения в столбце "факт" в красный цвет шрифта, если оно выходит меньше значения в столбце "план" ? | squit | Microsoft Office Excel | 19 | 17.01.2015 20:09 |
исправить это условие чтоб "1" выводилось на терминал даже если $stdat2[9] принимала не числовые значения | sergeyfromkomi | PHP | 5 | 24.04.2010 10:44 |