【问题标题】:Horizontal scroll with mouse wheel at Visual Studio在 Visual Studio 中使用鼠标滚轮进行水平滚动
【发布时间】:2022-05-14 22:25:51
【问题描述】:

我有一个新鼠标,它可以使用滚轮左右滚动。 虽然此功能适用于网页、Photoshop 等,但当我在 Visual Studio 中查看比窗口长(水平)的代码时,它不会做任何事情。

有没有办法让它工作?

Visual Studio 是 2010 Express;鼠标是罗技MX1100。

【问题讨论】:

  • 你能给我发电子邮件吗(MS 的 noahric)?我可以将您直接转发给正在处理 hscroll 鼠标问题的人。
  • @Noah Richards:我已经使用您的博客向您发送了一封电子邮件。谢谢

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


【解决方案1】:

EDIT 因为 ShiftScroll 似乎已被放弃,我创建了一个小扩展,将此功能添加到 Visual Studio 2017 和 Visual Studio 2019。

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 恕我直言的一个很好的内置功能。

【讨论】:

  • 也适用于 vs 2017。太棒了。
  • 我们不应该在 SO 中使用 cmets 来表示感谢,但是...谢谢!!!
  • 难以置信,这不是标准功能。
  • 谢谢!完美的解决方案。适用于 VS Community 2019 版本 16.8.2
  • 不客气。我很快就会为 VS2022 更新这个。
【解决方案2】:

在 VS2010 中存在一些水平滚动问题,其中一些问题在 VS2010 发布后已得到修复或解决。我不确定 MX1100 是否是以下任何一项的具体示例,但其中一些问题是/是:

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

我将与人们核实 MX1100 是否为人所知或属于前两个类别中的任何一个。

【讨论】:

  • 感谢您的详细解答。在我的情况下,1和3肯定不是问题。我在 Notepad++ 中也看到了水平滚动滚动的问题。在这种情况下,滚动条似乎在视觉上滚动,但代码本身没有。另外,卷轴的设计为什么会改变它的颜色(从WinXP的蓝色变成灰色)
【解决方案3】:

用 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

【讨论】:

    猜你喜欢
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    相关资源
    最近更新 更多