Реализация прокрутки с помощью средней кнопки мыши
От:
Аноним
Дата:
28.04.04 10:43
Оценка:
Добрый день!
Замечено, что стандартные виндовые контролы (например, EDIT, LISTVIEW и TREEVIEW) обладают возможностью прокручивать содержимое окна с помощью средней кнопки мыши. Именно кнопки, а не колеса !!!
Нажимаешь/отпускаешь среднюю кнопку — появляется курсор в виде 4-х или 2-х стрелок, в зависимости от наличие у окна горизонтального и вертикального скроллбаров. При смещении мыши от первоначальной позиции, происходит прокрутка окна посредством сообщений WM_VSHCROLL и WM_HSCROLL.
В поисках того, как эта фича сделана, набрел на исходники comctl32.dll. Нашел в ней исходник, который это делает — reader.c.
Но вот странное дело. Ни одна из ф-ций этого файла в остальных исходниках commctl не используется. И нигде нет описания структуры READERMODEINFO, которую получают все ф-ции из этого файла.
Конечно, это не умаляет ценность сей находки. Но наличие хедера со структурой READERMODEINFO, возможно покажет штатный способ использования этой файла.
Вопрос: Где найти описание структуры READERMODEINFO?
вообще то мне казалось что это определяется драйвером мыши или может быть настройками где нибудь в реестре
у меня мышь от ms на usb так вот в последних дровах такая функциональность не присутствует
теперь при нажатии на среднюю кнопку окно теряет фокус и скрывается...
так что я бы не стал сильно заморачиваться...
Re[2]: Реализация прокрутки с помощью средней кнопки мыши
Ты прав, в драйвере мыши есть настройка — реакция при нажатии на среднюю кнопку. Но почему-то разные программы могут выводить разный курсор. Значит они что-то для этого делают...
Re[3]: Реализация прокрутки с помощью средней кнопки мыши
Здравствуйте, cyg, Вы писали:
cyg>Ты прав, в драйвере мыши есть настройка — реакция при нажатии на среднюю кнопку. Но почему-то разные программы могут выводить разный курсор. Значит они что-то для этого делают...
Предположение:
драйвер мыши имитирует какое-то "событие" => программы обрабатывают это "событие", соответственно разные программы обрабатывают по разному (ведь кто знает, чем руководствовался программист, может у него на это событие стоит форматирование С:\...), отсюда и различия...
Re[4]: Реализация прокрутки с помощью средней кнопки мыши
Здравствуйте, Ash-2, Вы писали:
A2>Предположение: A2>драйвер мыши имитирует какое-то "событие" => программы обрабатывают это "событие", соответственно разные программы обрабатывают по разному (ведь кто знает, чем руководствовался программист, может у него на это событие стоит форматирование С:\...), отсюда и различия...
Вопрос в том, что это за событие?
Похоже — WM_MBUTTONDOWN.
Re[2]: Стандартные средства для прокрутки
От:
Аноним
Дата:
30.04.04 08:51
Оценка:
MFC 7.0, исходники CScrollView. Класс _AFX_MOUSEANCHORWND