Горизонтальная прокрутка
- Author
- Message
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Не помогло.Instructor wrote:Попробуйте указать "RichEditClass=1".
Более того, даже AkelPad 3.7.4 странно прокручивается – если с активна утилита для настройки мыши, то горизонтальная полоса прокрутки меняет внешний вид при прокрутке (похоже на отключение темы оформления), а если без утилиты, то вообще никак не реагирует.
Я правильно понял, что некоего стандартного сообщения окну – мол, прокрутись влево/вправо – нету?
-
Offline
- Posts: 2247
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
Есть. Называется WM_HSCROLL, только мышь оно никак не касается.Я правильно понял, что некоего стандартного сообщения окну – мол, прокрутись влево/вправо – нету?
Instructor
Но без утилитки мышиниый Ввод/Вывод должен работать в любом случае. Например можно попытаться реагировать на WM_INPUT, но тут уже неизбежна привязка к специфике устройства что не есть хорошо.Если даже внешний вид меняется, то тут на сообщениях к окну дело не заканчивается
(MSDN пишет что VISTA есть что-то типа поддержки горизонтального колеса).
Вот где-бы достать двуколесную мышь, чтобы попробовать практически?
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Угу, при первом подключении ставится какой-то драйвер от MS. Причем уже с ним в свойствах мыши появляется настройка горизонтальной прокрутки.FeyFre wrote:Но без утилитки мышиниый Ввод/Вывод должен работать в любом случае.
В моем случае это Win 7 и отклоняющееся влево/вправо колесо.FeyFre wrote:(MSDN пишет что VISTA есть что-то типа поддержки горизонтального колеса).
Вот где-бы достать двуколесную мышь, чтобы попробовать практически?
-
Offline
- Posts: 2247
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
А как называется? Мышь HID или не-HID(впрочем это не важно)?Угу, при первом подключении ставится какой-то драйвер от MS. Причем уже с ним в свойствах мыши появляется настройка горизонтальной прокрутки.
Ну во первых, у меня язык не поворачивается назвать это прокруткой. Скорее всего это две супер-хитрые кнопки, которые искусственно пытаются назвать горизонтальным скроллом.В моем случае это Win 7 и отклоняющееся влево/вправо колесо.
Во вторых, у меня дежавю... и вот почему:
Утилита часом называется на ipoint.exe ? (Хотя это не важно)Более того, даже AkelPad 3.7.4 странно прокручивается – если с активна утилита для настройки мыши, то горизонтальная полоса прокрутки меняет внешний вид при прокрутке (похоже на отключение темы оформления), а если без утилиты, то вообще никак не реагирует.
Дежавю потому что погуглив на предмет горизонтальной прокрутки попал я сюда и там точно такая же ситуация.
И на сколько я понял - лечения нам не видать. Стандартный мелкомягкий драйвер не понимает такого понятия как горизонтальная прокрутка. Возможно тот драйвер что доустанавливается уже и понимает, но выдает эти движения(по сути данные из устройства Мышь) в сыром виде. Сырой ввод хоть и проходит через окна, но в 99.(9)% случае не обрабатывается ими, а передается дальше в стандартные обработчики которые уже генерируют стандартные оконные сообщения пригодные для обработки. Только вот стандартные обработчики этого почему-то не делают, игнорируют(это называется правая рука не знает что делает левая). И потому и нужна утилита которая всё-таки обрабатывает сырой ввод от Мыши, генерируя нужные сообщения. Эта утилита небось вживляет свою DLL во все процессы, да? И заодно пытается умничать и навязывает свои скроллы тем кому они не нужны.
Выхода два:
1. Либо работаем только с утилитой.
2. Либо Инструктор делает то же, что и утилита
( WM_INPUT при GetRawInputData(lParam,...) которое возвращает тип события RIM_TYPEMOUSE и само событие - горизонтальная прокрутка преобразовать в WM_MOUSEHWHEEL)
Первое - неудобство для пользователей, второе - головная боль Инструктору, которая не факт что полезна(я лично не уверен что это правильный путь)
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
FeyFre
Утилита самообзывается как «Logitech SetPoint Event Manager», SetPoint.exe.
Например, поиск по «pshook» (Punto Switcher) выдает почти все процессы.
Диспетчер устройств показывает как «Logitech HID-compliant M500 Laser Mouse».А как называется? Мышь HID или не-HID(впрочем это не важно)?
Вообще ничего не важно, и все это только буквы на чьем-то экране.Утилита часом называется на ipoint.exe ? (Хотя это не важно)
Утилита самообзывается как «Logitech SetPoint Event Manager», SetPoint.exe.
Вроде бы, нет. Скрин.Эта утилита небось вживляет свою DLL во все процессы, да?
Например, поиск по «pshook» (Punto Switcher) выдает почти все процессы.
-
Offline
- Posts: 366
- Joined: Mon Jan 10, 2011 5:28 pm
- Contact:
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
Сделано по аналогии с WM_MOUSEWHEEL. Требуются владельцы мышек для проверки:
http://akelpad.sourceforge.net/files/AkelPad.zip
http://akelpad.sourceforge.net/files/AkelPad.zip
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
А так?Infocatcher wrote:Работает, но инвертировано.
Видимо WM_MOUSEHWHEEL посылается не как WM_KEYDOWN. А MS Notepad обрабатывает зажатие?Infocatcher wrote:И если зажать, то не прокручивает – только после каждого отдельного нажатия.
Берется указанное в настройках системы количество прокручиваемых символов (SPI_GETWHEELSCROLLCHARS).Infocatcher wrote:Еще в стандартном блокноте прокручивает на большее расстояние, а вот в Notepad++ – точно так же. Особая обработка, что ли.
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Instructor
С направлением теперь все правильно.
Что интересно, если выгрузить специальную утилиту для настройки, то прокручиваться начинает везде одинаково. И начинает реагировать на зажатие.
А без утилиты неудобно – у меня там закрытие окна и Alt+Tab на дополнительных клавишах.
С направлением теперь все правильно.
Да.А MS Notepad обрабатывает зажатие?
Что интересно, если выгрузить специальную утилиту для настройки, то прокручиваться начинает везде одинаково. И начинает реагировать на зажатие.
А без утилиты неудобно – у меня там закрытие окна и Alt+Tab на дополнительных клавишах.
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
Эксперимент можно считать удавшимсяInfocatcher wrote:С направлением теперь все правильно.
Похоже MS Notepad работает на более низком уровне.Infocatcher wrote:Да. Что интересно, если выгрузить специальную утилиту для настройки, то прокручиваться начинает везде одинаково. И начинает реагировать на зажатие.