![]() |
|
|
![]()
|
|
| voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: 8 Всего: 8 |
Есть CSliderCtrl.
Если слайдер был передвинут мышкой, то новое значение смотрим в обработчике NM_RELEASEDCAPTURE (в момент, когда мышка отпустила слайдер). Во время перемещения смотрим в обработчике OnHScroll. А как или где смотреть новое значение слайдера, если он был прокручен стрелкой клавиатуры? |
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 12 Всего: 26 |
Лови в PreTranslateMessage().
-------------------- ????? ??, ??????? ?????. |
|||
|
||||
| voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: 8 Всего: 8 |
А что ловить-то надо?
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
WM_HSCROLL или WM_VSCROLL, в зависимости от ориентации полунка. И не обязательно через PreTranslate, логичнее обработчик написать. А NM_RELEASEDCAPTURE забудь, из WM_HSCROLL получишь инфо о прокрутке в более удобном виде.
Добавлено через 1 минуту и 29 секунд Собственно, у тебя уже есть обработчик OnHScroll - оно всегда и приходит. -------------------- ... |
|||
|
||||
| voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: 8 Всего: 8 |
Да как раз OnHScroll и не подходит...
OnHScroll я исползую чтобы в эдите отобразить текущее значение скрола в момент перемещения. А в момент завершения перемещения должно выполняться определенное действие, причем это действие довольно ресурсоёмкое. Если это действие выполнять в OnHScroll, то приложение начинает тормозить, что не хорошо. Поэтому я выполняю его в момент окончания перемещения. Если слайдер перемещался мышкой, то момент окончания перемещения ловлю в NM_RELEASEDCAPTURE. Но не знаю где ловить момент окончания перемещения, если скрол производился с клавиатуры... p.s. Теперь вроде понятнее выразил суть вопроса, что при создании темы как всегда неудалось... |
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 12 Всего: 26 |
Сделай это в PreTranslateMessage()
-------------------- ????? ??, ??????? ?????. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
А ты не каждый OnHScroll обрабатывай. Там же есть параметр code, который рассказывает, что именно произошло. Не может быть, чтобы по клавиатурному скролу не приходил OnHScroll - если положение ползунка меняется, WM_HSCROLL обязан приходить. Всю жизнь обходилась только WM_SCROLL, его достаточно для любых обработок, связанных с прокруткой. -------------------- ... |
|||
|
||||
| voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: 8 Всего: 8 |
Andrey44, спасибо, но то что предлагает Earnest проще. В OnHScroll действительно есть параметр UINT nSBCode, по нему можно определить какой это был скролл. Вон из мндн
Даже не знаю, как я сам не обратил внимание на этот параметр... Earnest, спасибо!!! |
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 12 Всего: 26 |
voov, да я и сам потом посмотрел в мсдн по-моему тебя интересовал SB_ENDSCROLL?
-------------------- ????? ??, ??????? ?????. |
|||
|
||||
| voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: 8 Всего: 8 |
Именно он!
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |