Колесо мыши: как передать событие в окно под

В нашем приложении есть окно инструментов, которое всплывает поверх окон документов. Он использует следующие стили для окна инструмента:

args.style = WS_POPUPWINDOW | WS_CAPTION;
args.exstyle = WS_EX_TOPMOST | WS_EX_TOOLWINDOW;

Проблема заключается в следующем: я в основном хочу, чтобы окно инструментов игнорировало события колесика мыши и передавало его в любое окно под ним. Таким образом, пользователь должен иметь возможность прокручивать документ (или содержимое другого окна), пока указатель мыши находится над окном инструмента.

Есть ли простой способ достичь этого, или я должен реализовать это трудным путем? (Найдите окно под мышью, для которого не установлен WS_EX_TOPMOST, затем отправьте ему поддельное событие WM_MOUSEWHEEL.)

Это проект C ++, но я думаю, что он довольно похож в C #.

РЕДАКТИРОВАТЬ: Чтобы уточнить вещи, Windows отправляет WM_MOUSEWHEEL в окно, которое имеет фокус клавиатуры, независимо от положения курсора. Я хочу изменить это и перенаправить событие в окно под курсором. Я реализовал это с помощью WindowFromPoint и PostMessage, которые работали хорошо, пока мы не представили окна инструментов. Мне в основном нужна функция WindowFromPointButIgnoreTopMostWindows …

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]