【问题标题】:Looking for WHEEL_DELTA constant寻找 WHEEL_DELTA 常量
【发布时间】:2014-02-06 20:38:16
【问题描述】:

我正在处理继承 NumericUpDown 的 UserControl 中的鼠标滚轮事件

Private Sub MyUpDown_MouseWheel(sender As Object, e As MouseEventArgs) Handles Me.MouseWheel
    Me.Value += e.Delta * Me.Increment ' / WHEEL_DELTA
End Sub

MouseEventArgs.Delta 有这个提示:

获取鼠标滚轮所具有的棘爪数量的有符号计数 旋转,乘以 WHEEL_DELTA 常数。棘爪是一个档位 鼠标滚轮。

但是我找不到这个常数。这是通常 120,但我不想经常指望。如何将其公开给我的代码?

【问题讨论】:

  • Why is WheelDelta = 120? 的可能重复项
  • @LarsTech 如果您可以在该页面上告诉我如何获得此常量,我会同意。但我没有。
  • e.Delta 考虑了常数——不管它是什么;它的结果,为什么要关心?
  • @Plutonix 是吗? e.Delta 是 120,这是否意味着我正在滚动 120 个刻度?不,我需要除以 WHEEL_DELTA(大多数情况下为 120)。现在我的代码是Me.Value += e.Delta * Me.Increment / 120,但不同的鼠标可能有不同的 WHEEL_DELTA 120
  • 使用 SystemInformation.MouseWheelScrollDelta

标签: vb.net winforms


【解决方案1】:

根据 MSDN Most applications should check for a positive or negative value rather than an aggregate total. 的说法,在大多数情况下,我只看到每次点击 1 次制动移动 - 它们可能会快速连续出现,但每次点击会出现 1 个刻度 (e.Delta=120)。

要获得 MouseWheel 增量因子:

 WheelDelta As Integer = SystemInformation.MouseWheelScrollDelta

它是 System.Windows.Forms 的成员以及其他各种指标,如滚动拇指宽度等。

【讨论】:

    猜你喜欢
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    相关资源
    最近更新 更多