|
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 20
|
|
Как отловить скроллинг колесом мыши?23.03.2010, 13:53. Показов 5590. Ответов 23
Метки нет (Все метки)
Есть форма, на ней кроме всего прочего есть список ListBox, перезаполненный т.е. со скроллбаром.
Нужно все кручения колесика мыши над формой передавать скроллированию этого списка, как такое сделать?
0
|
|
| 23.03.2010, 13:53 | |
|
Ответы с готовыми решениями:
23
Прокрутка колесом мыши изображения в PictureBox Как отловить колесо мыши?
|
|
Comanche
|
|
| 23.03.2010, 14:21 | |
|
Попробуйте через Spy++ определить, какие именно сообщения летят, когда крутится колесо. Потом с помощью замены оконной процедуры формы вы сможете их перехватить и перенаправить куда надо.
|
|
|
Comanche
|
|
| 23.03.2010, 16:29 | |
|
Дайте ваш и-мейл - скину готовый код.
|
|
|
Comanche
|
||||||
| 23.03.2010, 16:43 | ||||||
|
Короче. Сохраните этот текст как файл Form1.frm:
[code] Attribute VB_Name = 'Module1' Public Declare Function CallNextHookEx Lib 'user32' (ByVal hHook As Long, _ ByVal nCode As Long, ByVal wParam As Integer, lParam As Any) As Long Public Declare Function GetCurrentThreadId Lib 'kernel32' () As Long Public Declare Funct |
||||||
|
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 20
|
|
| 23.03.2010, 16:43 [ТС] | |
|
было бы хорошо
![]() commilfo#rbcmail.ru
0
|
|
|
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 20
|
|
| 23.03.2010, 16:43 [ТС] | |
|
спасибо!
0
|
|
|
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 20
|
|
| 23.03.2010, 16:53 [ТС] | |
|
пока что - не работает
кручу, не реагирует если фокус передать списку, и проскроллить, чуть дергается и тут же вылетает с overflow в hook (IMWheel)
0
|
|
|
Comanche
|
|
| 23.03.2010, 17:06 | |
|
Странно: у меня всё работает.
Spy++ проверяли? Те же сообщения надо ловить (MSWHEEL_ROLLMSG)? |
|
|
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 20
|
|
| 23.03.2010, 17:08 [ТС] | |
|
вылетало из-за того что в
Public Declare Function CallNextHookEx Lib 'user32' (ByVal hHook As Long, _ ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long wParam был as Integer так - не вылетает но скроллит только если фокус на списке
0
|
|
|
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 20
|
|
| 23.03.2010, 17:23 [ТС] | |
|
по Spy++,
у меня происходят WM_MOUSEMOVE при движении мышки, но при скролле колесом - их не происходит, только появляются 4 event-a на перерисовку списка (всякие hBrush) смотрел на ехе-шнике из этого самого проекта, этой же формой как же он скроллит, если Spy++ не замечает?
0
|
|
|
0 / 0 / 0
Регистрация: 16.12.2009
Сообщений: 12
|
|
| 23.03.2010, 18:34 | |
|
Если нужно всего лишь скролировать список в листбоксе, то не проще ли поставить драйвера для мыши?
Заодно решится проблема со скролингом в других компонентах.
0
|
|
|
0 / 0 / 0
Регистрация: 16.12.2009
Сообщений: 12
|
|
| 23.03.2010, 18:35 | |
|
Или скролирование идет именно над формой, а не над контролом?
0
|
|
|
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 20
|
|
| 23.03.2010, 20:25 [ТС] | |
|
скроллинг колесом работает когда фокус на списке
а нужно скроллить вне зависимости от фокуса
0
|
|
|
Comanche
|
|
| 23.03.2010, 20:27 | |
|
Я вот снёс у себя фирменные дрова от колёсной мыши - и Spy++ тоже перестал ловить MSWHEEL_ROLLMSG. Т.е. дело - в драйвере мыши: или он у тебя не стоит, или стоит 'криво'.
|
|
|
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 20
|
|
| 23.03.2010, 20:50 [ТС] | |
|
у меня последняя версия драйвера от микрософта, на прошлой неделе скачал
мышь Wheel Optical хм...
0
|
|
|
Comanche
|
|
| 23.03.2010, 20:54 | |
|
Но зато (когда я без 'дров') ловится мессадж MS_MOUSEWHEEL (см. Spy++), с теми же wParam и lParam. Т.е. можешь и не ставить фирменный драйвер мыши, а просто переставить перехват на другое сообщение - т.е. на это самое MS_MOUSEWHEEL.
|
|
|
0 / 0 / 0
Регистрация: 16.12.2009
Сообщений: 12
|
|
| 23.03.2010, 20:59 | |
|
Проблема не решится установкой драйверов, т.к. как я понял хочется скролировать лист без установленного на него фокуса. Т.е. фокус на любом другом контроле формы, а скролится лист.
Это дровами не решить. Нужно обрабатывать ручками скролинг над формой.
0
|
|
|
Comanche
|
|
| 23.03.2010, 21:01 | |
|
Paksly, ё-моё, ты топик-то читал хоть?
'Нужно обрабатывать ручками скролинг над формой'... А я тут для чего, по-твоему, код выложил? Для красоты? В нём скроллинг над формой и обрабатывается! ))
|
|
|
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 20
|
|
| 23.03.2010, 21:05 [ТС] | |
|
только чего-то у меня event скролинга не ловится
даже Spy++, хотя в винде везде скролл нормально работает
0
|
|
|
Comanche
|
|
| 23.03.2010, 21:08 | |
|
А у тебя везде в Spy++ 'галочки' стоят?
Т.е. он настроен на отлов ВСЕХ сообщений? включая 'неизвестные'? |
|
| 23.03.2010, 21:08 | |
|
Помогаю со студенческими работами здесь
20
Скроллинг мыши в среде разработки VB6
Как обрабатывать скролл колесом мыши?
2003 Акс, как сделать прокрутку колесом мыши в полях MEMO? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|