在Visual Studio中使用鼠标滚轮的水平滚动

时间:2010-09-27 08:31:37

标签: visual-studio visual-studio-2010 scroll

我有一个新的鼠标,可以使用它的滚轮左右滚动。 虽然此功能适用于网页,Photoshop等,但当我在Visual Studio中查看比窗口更长(水平)的代码时,它将无法执行任何操作。

有没有办法让它发挥作用?

Visual Studio是2010 Express,鼠标是Logitech MX1100。

3 个答案:

答案 0 :(得分:7)

VS2010中存在水平滚动的一些问题,其中一些已在VS2010出厂后修复或解决。我不确定MX1100是否是下列任何一个的具体示例,但有些问题是:

  1. 一些鼠标驱动程序最终将事件发送到错误的HWND;我们已经看到过这样的情况:事件将始终发送到最后一件事情,例如,当编辑器具有焦点时,解决方案资源管理器将滚动。我认为这个是修复
  2. 在发送WM_MOUSEHWHEEL(或伪造WM_HSCROLL)之前,许多驱动程序检查主HWND是否具有WS_HSCROLL(声明它具有win32水平滚动条)。由于VS的主窗口没有,并且编辑器之类的东西没有 win32 水平滚动条,它们将拒绝发送水平滚动消息。 这个是不固定的
  3. (绝对不是你的情况,但是)运行Windows的VMWare Fusion(在OS X上)不会在水平滚动事件上转发到客户端操作系统。
  4. 我会与人核实MX1100是否已知或属于前两类中的任何一个。

答案 1 :(得分:4)

编辑,因为 ShiftScroll 似乎已被放弃,我创建了一个小扩展程序,将此功能添加到Visual Studio 2017中。

https://marketplace.visualstudio.com/items?itemName=drewnoakes.SideScroller

https://github.com/drewnoakes/vs-side-scroller

希望它会让某人出局。

对于VS2015, ShiftScroll 扩展程序可以完美地完成此任务。

https://marketplace.visualstudio.com/items?itemName=NGPearce.ShiftScroll

当您按住 shift 键时,它以非常舒适的速度向左/向右滚动。

这将是VS恕我直言的一个很好的内置功能。<​​/ p>

答案 2 :(得分:2)

使用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