Здравствуйте, onotol3, Вы писали:
O>В проекте есть диалог на котором выводятся кнопки. И по нажатию кнопки мне нужно изменять значение переменной, но по нажатию значение увеливается "один раз", а нужно чтобы по нажатию на кнопку значение увеличивалось пока кнопка не будет отпущена. Нажатие кнопки отслеживаю таким образом:
O>O>case WM_COMMAND:
O>{
O> if (wParam == IDC_BUT_XPRIBLIZ)
O> {
O> oxright +=0.2;
O> return true;
O> }
O>}
O>
пока кнопка не будет отпущена
А сколько раз в единицу времени?
Вообще, WM_COMMAND генерируется не когда кнопка нажата, а когда отжата. Это можно увидеть, если нажимать кнопку мышкой медленно.
По-моему, штатных средств, т.е. сообщений в родительское окно, по которым можно понять "нажали-отжали" — нету.
Я бы делал сабклассинг кнопки.
Если диалог живёт недолго — я бы посоветовал таймер и чекбокс(попробовать, не уверен)
Таймер:
SetTimer, KillTimer
событие WM_TIMER
в нём проверять состояние кнопки через BM_GETSTATE
Или, опять же, не совсем ясна задача... для накручивания переменной можно взять контрол SPIN, он же UP-DOWN. У него ровно нужная функциональность — накручтивает переменную пока нажат. Причём переменная уже внутри есть, и даже можно штатными средствами едит-бокс прикрутить и настроить по-разному, чтоб сам эту переменную показывал.