Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: CL | DM;

Вниз

Скроллинг колесиком в моих приложениях   Найти похожие ветки 

 
марсианин ©   (2004-03-28 14:41) [0]

Мужики, как сделать скроллинг не при прокрутке, а при нажатии на колесико? чтоб как Internet Explorer появился кружочек со стрелочками и перемещением мыши осуществлялся плавный скроллинг?


 
Cobalt ©   (2004-03-28 17:34) [1]

OnMouseWheel


 
ПЛОВ   (2004-03-28 17:36) [2]

Просто...
Обрабатываеш нажатие средней кнопки крысы (колесика), меняешь курсор, а дальше замеряя позицию этого самого курсора через апи делаешь прокрутку...
см. GetScrollPos, GetScrollPos и т.п.


 
Diamond Cat ©   (2004-03-28 23:19) [3]

я в свое время долго боролся с этим,и выяснил некоторые вещи, котрые шли в разрез с хелпами и msdn-ом, к примеру сообщение wm_mowsewheel, которое генериться при прокрутке колесика мыши, должно иметь в качестве ресультата 0 если все прошло гладко и все остальное если сообщенеие не прошло, так вот большинство окон именно так и делает а к примеру ворд чхает на это и в ответе передает все что его душе придется . к тому же не все окна обрабатывают это сообщение к примеру winsight32, в мсдн пишут , что типа это сообщение пробрасывается по цепочке окон к в сторону родительского, пока не будет обработано, или не достигнет верхнего уровня, а теперь предположим что некоторые особо одаренные написали скрол бар в другой цепочке по отношению к прокручиваемому окну. вобщем полный абзац. Если интересно, могу слить результаты моих попыток, я умудрился добиться примерно 99% срабатываемости. причем в результате я отказался от wm_mousewheel , а пользовался wm_h/vsroll и wm_keyup/down c параметром vk_left/right/up/down/


 
марсианин ©   (2004-03-30 17:25) [4]

2Cobalt ©   (28.03.04 17:34) [1]

я вообще-то на АПИ пишу, нету OnMouseWheel, а сообщение WM_MOUSEWHEEL при нажатии на колесико не посылается -- проверено

мне просто было интересно, существуют ли стандартные средства АПИ поддержки этого явления? или каждое приложение делает это по-своему?

я посмотрел winsight32-ом какие сообщения получает IE при скроллинге, (к сожалению дома смотрел, поэтому лог тоже дома) помню точно, там было какое-то сообщение WM_USER+0x00007C12 кажись, затем повторения WM_TIMER, WM_MOUSEMOVE, WM_SETCURSOR.. WM_H/VSCROLL не замечено..

я сделал как предлагает ПЛОВ
т.е. на WM_MBUTTONDOWN включается таймер, захватывается крыса (SetCapture), запоминается точка куда ткнули, и сам меняю курсор (точне буду менять, потому что еще не нарисовал курсоры, а может есть стандартный???).

каждый тик таймера отслеживается положение курсора относит. исходной точки и вычисляю новые позиции скроллбаров, посылаю WM_H/VSCROLL (хотя можно и черес SetScrollPos, SetScrollInfo)

при любом нажатии останавливаю таймер, ReleaseCapture, исходный курсор...

это работает, пусть криво, но работает... может есть способ сделать это по-изящнее?

2 Diamond Cat © пришли свой вариант, плз, интересно как ты сделал..


 
Diamond Cat ©   (2004-03-30 19:02) [5]


> (хотя можно и черес SetScrollPos, SetScrollInfo)
без мазы, все равно придется дать понять окну владеющему этими скролами, что скрол передвинут, а то скролл-то подвинется а вот окно нет, примерчик высылаю


 
Diamond Cat ©   (2004-03-30 19:03) [6]

ага , высылаю, а куда слать??? ты в анкете мыло не прописал :о)


 
марсианин ©   (2004-03-30 22:35) [7]

специально же вписал alexey_go@mail.ru ))


 
Diamond Cat ©   (2004-03-30 23:44) [8]

звиняй, протормозил, лови
(краткость - сестра нашего брата)



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

Текущий архив: 2004.05.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.049 c
1-1083529948
KEBZ
2004-05-03 00:32
2004.05.16
Text


1-1083325285
Sema
2004-04-30 15:41
2004.05.16
Как вставить гиперссылку в документ word ?


1-1083500489
AndrewVolkov
2004-05-02 16:21
2004.05.16
Какой-то странный глюк при работе с тхт файлом


6-1080201872
Katya_mgkit
2004-03-25 11:04
2004.05.16
NetBios


3-1082610665
Санёк
2004-04-22 09:11
2004.05.16
Как не вставлять пустую запись?