| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Хук на скролл чужого окна - C++ WinAPI |
| Автор: korsaj 1.2.2018, 15:38 | ||
Подскажите, что я делаю не так. В ддл обрабатываю сообщения от скролла. При манипуляции со скроллами сообщение ловится, но значения nPos всегда хаотичные. Подозреваю что неправильно получаю структуру SCROLLINFO, но как именно неправильно ума не приложу. Ниже код ловушки из длл.
|
| Автор: xvr 2.2.2018, 14:29 |
| Если 'чужое окно' находится в другом приложении, то прочесть SCROLLINFO не получится. Аддрес в lParam будет для адресного пространства чужого приложения, у вас там будет что угодно. Для обработки таких хуков надо внедряться в это чужое приложение |
| Автор: korsaj 2.2.2018, 15:31 | ||
Все сделано до вас. Вопрос был в другом и его решение найдено. в LRESULT ScrollHookProc(int code, WPARAM wParam, LPARAM lParam ) первым делом получаем ссылку на структуру MSG, MSG *msg = (MSG*)lParam; а уже в ней храниться указатель на окно пославшее сообщение (в которое внедрена длл). SCROLLINFO si; ZeroMemory(&si, sizeof(si)); si.cbSize = sizeof(si); si.fMask = SIF_ALL; GetScrollInfo(msg->hwnd, SB_HORZ, &si)); |