Нет событий колесика мыши при использовании сенсорной панели
У меня проблемы с извлечением событий колесика мыши, когда моя программа работает на моем ноутбуке и когда я прокручиваю с помощью сенсорной панели.
Первоначально я использовал DirectInput для перехвата входных событий, но тут и там я читал, что DirectInput не мог обрабатывать события прокрутки, отправленные сенсорными панелями.
Я провел несколько дополнительных исследований и остановился на этой старой теме: колесо прокрутки мыши C++ DirectInput с сенсорной панелью ноутбука
Итак, я попытался использовать цикл PeekEvent, чтобы поймать мои вводы мыши. Все работало нормально при использовании настоящей мыши, но когда я переключился на свой ноутбук, та-да: никаких событий WM_MOUSEWHEEL не получалось. (И этот парень предсказал это) Я не получаю ни одного события WM_VSCROLL или WM_GESTURE.
Кроме того, я создал другую программу, основанную на wxWidgets, и в этом случае события колеса мыши правильно отлавливаются приложением. Я проанализировал исходный код, чтобы увидеть, как wxWidgets извлекает события Windows, и, за исключением случаев, когда я что-то упускаю, он выглядит точно так же, как мой.
Есть ли какая-то волшебная уловка вуду, чтобы ловить события колеса мыши, генерируемые сенсорной панелью? Я могу предоставить больше информации о моем коде, если это необходимо.
Спасибо
РЕДАКТИРОВАТЬ:
Я сделал дополнительную отладку, чтобы узнать, что происходит:
Во-первых, я ошибся, сказав, что вообще не ловлю событие WM_MOUSEWHEEL. Фактически, в Обратном вызове WindowProc я фактически получаю события колеса.
Однако вызов PeekMessage не возвращает никакого события.
Я мог бы в конечном итоге изменить способ сбора событий мыши, чтобы сделать это непосредственно в обратном вызове WindowProc, но мне нужно будет сделать некоторые странные вещи, просто чтобы обработать что-то, что должно работать одинаково, используя настоящую мышь или сенсорную панель.