Вниз
Скачать: CL | DM;

Прокрутка колесом мыши   Найти похожие ветки 

 
lipskiy ©   (2003-12-17 23:13) [0]

Как обеспечить прокрутку, даже если не установлен родной драйвер мыши?

В некоторых компонентах (дерево VirtualTreeView, табличка GridView) прокрутка не работает, если не стоит родной драйвер мыши, а иногда и с драйвером не работает.

В чем отличие работы при установленном драйвере и без него? Ведь в моей программе ничего не меняется, просто винда что-то другое посылать начинает, или как?
Как можно обеспечить работу прокрутки в любом случае?


 
lipskiy ©   (2003-12-25 01:17) [1]

up


 
nikkie ©   (2003-12-25 01:55) [2]

у меня VTV нормально отрабатывает на прокрутку (win2K, программа откомпилирована в D6). по идее, при прокрутке колеса посылается сообщение WM_MOUSEWHEEL. но вполне возможно, что больно умный драйвер будет посылать WM_VSCROLL с целью заставить работать колесико в приложениях, которые не знают о WM_MOUSEWHEEL. однако легко можно представить приложение, в котором из-за такого фокуса колесо наоборот перестает работать: если скролбары реализованы как отдельные окна, а не как элементы прокручиваемого окна.


 
BaDeVlad ©   (2003-12-25 09:07) [3]

Если Вы написали обработчик события OnMouseWheel или ему подобный, то дальнейшая обработка этого сообщения прекращается. И драйвер мыши не превращает это сообщение в wm_scroll (как он делает, если сообщение WM_MOUSEWHEEL не обработано). По крайней мере нормальные драйвера так работают...


 
MV   (2003-12-25 11:09) [4]

2 BaDeVlad © (25.12.03 09:07) [3]

Правильно, добавьте в код строчку Inherited (если по логике подходит, конечно)


 
lipskiy ©   (2004-01-02 23:55) [5]


> BaDeVlad © (25.12.03 09:07) [3]

Пардон, немного недопонял.
Лично я не писал обработчиков OnMouseWheel.
В компонентах, о которых я говорил, как бы такого конкретно я не встретил.
То есть что это означает, что если в компоненте обработано OnMouseWheel, то без драйвера прокрутка работать не будет? А с драйвером будет? А в чем разница?

Проблема в том, что НИЧЕГО НЕ МЕНЯЯ В КОДЕ, одно и то же приложение, но запущенное при установленном мышином драйвере и без этого драйвера в первом случае прокручивается, во втором нет. При чем же здесь обработка события? Допустим, оно обрабатывается. Так оно в обоих случаях обрабатывается. Или не обрабатывается - также, в обоих случаях.
Разница только одна - установлен драйвер или нет (м.б. еще важно - какой драйвер, этого не проверял).

Так вот вопрос - что меняется в работе обработчиков событий прокрутки колесом с разными драйверами и без них?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: -0.981 c
3-49411
akhmadey
2003-12-19 11:34
2004.01.16
TTable и TQuery


3-49466
GIL
2003-12-17 16:32
2004.01.16
БД в OEM


1-49634
lipskiy
2004-01-02 18:38
2004.01.16
Не могу сохранить ветку реестра в файл.


14-49764
Думкин
2003-12-24 00:07
2004.01.16
С днем рождения! 24 декабря.


3-49446
www
2003-12-18 11:56
2004.01.16
TUpdateSQL для 2-х таблиц




   Наверх