Горизонтальная прокрутка колесиком мыши в Visual Studio

У меня есть новая мышь, которая имеет возможность прокручивать вправо и влево, используя колесо прокрутки. Пока эта функция работает на веб-страницах, Photoshop и т. д., он ничего не будет делать, когда я использую его в Visual Studio при просмотре кода, который длиннее (по горизонтали), чем окно.

есть ли способ заставить его работать?

Visual Studio - 2010 express, мышь-Logitech MX1100.

3 ответов


есть несколько проблем с горизонтальной прокруткой в VS2010, некоторые из которых были исправлены или обработаны после отправки VS2010. Я не уверен, что MX1100 является конкретным примером любого из следующих, но некоторые из проблем были/есть:

  1. некоторые драйверы mice в конечном итоге отправляют событие в неправильный HWND; мы видели случаи, когда события всегда будут отправляться в последнюю, но одну вещь, например, обозреватель решений будет прокручиваться, когда редактор имеет фокус. Я думаю, это один был основные.
  2. многие драйверы перед отправкой WM_MOUSEHWHEEL (или подделкой WM_HSCROLL) проверяют, имеет ли основной HWND WS_HSCROLL (объявляет, что он имеет горизонтальную полосу прокрутки win32). Поскольку главное окно VS не делает, и такие вещи, как редактор, не имеют для Win32 горизонтальные полосы прокрутки, они откажутся отправлять сообщения горизонтальной прокрутки. этот не закреплен.
  3. (определенно не ваш случай, но) 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.