Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ловим скролл: WM_HSCROLL и WM_VSCROLL, необходимо глобально отловить скролл 
:(
    Опции темы
AGENTxXx
Дата 27.1.2010, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 8.6.2009

Репутация: нет
Всего: 1



Всем добрай день! Проблемма такая: нужно отловить горизонтальный и вертикальный скрол, т.е. определить, когда происходит горизонтальный, а когда вертикальный. В общем случае отловить мтогу с помощью e.Delta, где e это MouseEventArgs, но там нет свойства указывающего на то, какой скролл использовался, просто или 120 или -120, в итоге могу только поймать вертикальную прокрутку можно сказать... Чем можно поймать их, чтобы были отличия? Использую глобальные ловушки в общем. Кто с этим сталкивался?

Поправочка: вот эта дельта реагирует в моем случае только на вертикальную прокрутку. Как отловить горизонтальную??? Мышинный хук вообще не хочет ее узнавать, Может это как то с клавиатурным связанно или вообще отдельно?

Это сообщение отредактировал(а) AGENTxXx - 27.1.2010, 15:19
PM MAIL   Вверх
AGENTxXx
Дата 27.1.2010, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 8.6.2009

Репутация: нет
Всего: 1



Ну хотя бы есть у кого-нибудь какие-нибудь мысли? Вообще не знаю как это реализовать. Ну или ссылку можете дать на прогу где вообще суперхук, все ловит. Помню только что с какой то книгой в примерах шел он. Не помню только где видел. У себя поискал - не нашел... Ребят!!! Нужна помощь!
PM MAIL   Вверх
tol05
Дата 27.1.2010, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 63
Всего: 170



AGENTxXx, Просто Ваш вопрос неинформативен. Вы его просто не сформулировали.

Цитата(AGENTxXx @  27.1.2010,  14:13 Найти цитируемый пост)
нужно отловить горизонтальный и вертикальный скрол

Где? В своем приложении? В чужом? Глобально? Какая технология? WinForms? WPF? Console? Вопрос-то задан в разделе "Общие вопросы"...

Цитата(AGENTxXx @  27.1.2010,  14:13 Найти цитируемый пост)
В общем случае отловить мтогу с помощью e.Delta, где e это MouseEventArgs

WindowsForms? Тогда переопределите метод формы WndProc и ловите соответствующий Message там.
информацию можно найти здесь

Глобальный хук я бы использовал, только если бы было нужно перехватывать сообщения, предназначенные для постороннего, чужого процесса, на Вашего т.е.

Это сообщение отредактировал(а) tol05 - 28.1.2010, 01:17


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
AGENTxXx
Дата 27.1.2010, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 8.6.2009

Репутация: нет
Всего: 1



Написанно ведь: необходимо глобально отловить скролл, так что где, этот вопрос не уместен. Если бы в данной проге, то это вообще то локально))
А проблемма заключается в том, что SendMessage не подойдет, так как нужен id окна, а так как у меня нет его (вообще не использую эту функцию в своей проге) то такое решение не подойдет. Я пользуюсь ф-ей mouse_event():
Код

DllImport("User32.dll")]
        static extern void mouse_event(MouseFlags dwFlags, int dx, int dy, int dwData, UIntPtr dwExtraInfo);

        [Flags]
        enum MouseFlags { Move = 0x0001, LeftDown = 0x0002, LeftUp = 0x0004, RightDown = 0x0008, RightUp = 0x0010, Absolute = 0x8000, MiddleDown = 0x0020, MiddleUP = 0x0040};


Как видите, тут не нужен id окна, так вот. Как подобным образом можно реализовать скроллинг? Как видите, остальные реализовал, ну конечно тут еще нет XBUTTONов, но это не проблемма добавить. Самое главное, это скроллинг!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0649 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.