【问题标题】:Need example for for WM_MouseWheel需要 WM_MouseWheel 的示例
【发布时间】:2014-11-19 18:51:01
【问题描述】:

我的控件(如 TMemo)没有 MouseWheel 代码。如何添加正确的 Wheel 处理程序以便滚动正确的行数 - 如果 ControlPanel 设置了每次旋转 3 行,我需要 3 行来滚动一次。

我的测试是

procedure TMyMemo.WMMouseWheel(var Message: TWMMouseWheel); 
var
  Delta: Integer;
begin
  Delta:= Message.WheelDelta div 80 * Mouse.WheelScrollLines;//??????
  ScrollPosY := ScrollPosY - Delta;
  Message.Result := 1;
end;

我不认为80 可以,这是猜测 - 它在这里工作(使用 Win7)。如何获得正确的滚动行数?

【问题讨论】:

  • 这没有用,TLama。我需要获取正确的 Delphi 代码,该代码可以为当前 PC 获取 OK 行数。
  • 为什么要删除之前的问题?你为什么不编辑它?这样cmets就不会丢失。多么浪费精力。 -1
  • 因为评论显示问题不好,所以我重写了。
  • 请编辑问题而不是删除并重新发布。历史是有价值的。我在那里评论的大部分内容都没有在这里解决。
  • 在这里查看我的答案:stackoverflow.com/questions/5297234/…

标签: delphi


【解决方案1】:

我找到了不错的方法。我需要写Protected方法:

DoMouseWheelUp.....; override;
DoMouseWheelDown......; override;

在每一个中,我都必须滚动 Delta=Mouse.WheelScrollLines

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 2017-02-15
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多