Горизонтальная прокрутка колесиком мыши в Visual Studio
У меня есть новая мышь, которая имеет возможность прокручивать вправо и влево, используя колесо прокрутки. Пока эта функция работает на веб-страницах, Photoshop и т. д., он ничего не будет делать, когда я использую его в Visual Studio при просмотре кода, который длиннее (по горизонтали), чем окно.
есть ли способ заставить его работать?
Visual Studio - 2010 express, мышь-Logitech MX1100.
3 ответов
есть несколько проблем с горизонтальной прокруткой в VS2010, некоторые из которых были исправлены или обработаны после отправки VS2010. Я не уверен, что MX1100 является конкретным примером любого из следующих, но некоторые из проблем были/есть:
- некоторые драйверы mice в конечном итоге отправляют событие в неправильный HWND; мы видели случаи, когда события всегда будут отправляться в последнюю, но одну вещь, например, обозреватель решений будет прокручиваться, когда редактор имеет фокус. Я думаю, это один был основные.
- многие драйверы перед отправкой WM_MOUSEHWHEEL (или подделкой WM_HSCROLL) проверяют, имеет ли основной HWND WS_HSCROLL (объявляет, что он имеет горизонтальную полосу прокрутки win32). Поскольку главное окно VS не делает, и такие вещи, как редактор, не имеют для Win32 горизонтальные полосы прокрутки, они откажутся отправлять сообщения горизонтальной прокрутки. этот не закреплен.
- (определенно не ваш случай, но) VMWare Fusion (на OS X) работает windows не перенаправляет события горизонтальной прокрутки в клиентскую ОС.
Я проверю с людьми, чтобы узнать, известен ли MX1100 или попадает в одну из первых двух категорий.
попробуйте мое решение с помощью AutoHotKey:
https://superuser.com/a/1144201/240650
; Shift + Wheel for horizontal scrolling
+WheelUp::
; Scroll to the left
MouseGetPos,,,id, fcontrol,1
Loop 8 ; <-- Increase for faster scrolling
SendMessage, 0x114, 0, 0, %fcontrol%, ahk_id %id% ; 0x114 is WM_HSCROLL and the 0 after it is SB_LINERIGHT.
return
+WheelDown::
;Scroll to the right
MouseGetPos,,,id, fcontrol,1
Loop 8 ; <-- Increase for faster scrolling
SendMessage, 0x114, 1, 0, %fcontrol%, ahk_id %id% ; 0x114 is WM_HSCROLL and the 1 after it is SB_LINELEFT.
return
для VS2015 в ShiftScroll расширение делает это отлично.
https://marketplace.visualstudio.com/items?itemName=NGPearce.ShiftScroll
он прокручивает влево / вправо с очень удобной скоростью, пока вы держите shift ключ.
Это была бы хорошая встроенная функция VS IMHO.