Не получать события WM_MOUSEWHEEL при прокрутке сенсорной панели двумя пальцами - PullRequest
0 голосов
/ 19 апреля 2019

Недавно я поместил трекпад / тачпад в мою машину в качестве указательного устройства.У моего программного обеспечения есть пользовательский интерфейс, созданный в WPF и MFC.С одним из окон я сталкиваюсь с проблемами прокрутки, особенно с сенсорной панелью прокрутки двумя пальцами.То же окно пользовательского интерфейса прекрасно работает при прокрутке колесиком мыши.Я проверил несколько других элементов пользовательского интерфейса, которые являются частью моего программного обеспечения и созданы в WPF, там постоянно работает прокрутка двумя пальцами с указателем мыши в любом месте.

Дальнейшее добавление дополнительной информации к этому, прокрутка двумя пальцамиработает, как и ожидалось, когда указатель мыши удерживается на активном элементе управления пользовательского интерфейса, помещенном в рассматриваемое окно (т. е. флажок с этим связанным текстом).но когда указатель мыши помещается в пустые области окна или на текст, перемещается только полоса прокрутки, а не содержимое.Но в этом же окне прокрутка отлично работает с колесом мыши, где указатель мыши находится / находится в любом месте рассматриваемого окна.

Я проверил код, но на данный момент там не было ничего плохого,и мне также сложно обвинять код, поскольку прокрутка всегда работает с колесом мыши.Во-вторых, я проверял, хотя spy ++, события Windows, полученные при прокрутке двумя пальцами с указателем мыши, расположенным в области, отличной от активных элементов управления в рассматриваемом окне, я не получаю событие WM_MOUSE WHEEL, вместо этого я получаю WM_VSCROLL.

Еще одно замечание по поводу того же. Когда я отключаю настройки окон прокрутки двумя пальцами, прокрутка двумя пальцами нигде в Windows не происходит, но в моем программном обеспечении прокрутка двумя пальцами работает так, что при каждом нажатии я нажимаю клавишу CTRL.прокрутка двумя пальцами, но с меньшей чувствительностью.Удивительно, но это также прекрасно работает в рассматриваемом окне!

Кто-нибудь может дать мне знать, почему прокрутка двумя пальцами не работает для рассматриваемого окна.

** Одно подозрение, что каждый изэлемент управления пользовательского интерфейса в рассматриваемом окне MFC рассматривается как дочернее окно, а окно как родительское!

Примечание: - 1) Установленная операционная система - Windows 10. 2) Драйверы являются HID-совместимыми драйверами. 3) Также имеется Precision Touchpad.

...