需要WM_MouseWheel的示例

时间:2014-11-19 09:38:54

标签: delphi

我的控件(如TMemo)没有MouseWheel代码。如何添加正确的Wheel处理程序,使其滚动正确的Num行 - 如果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)。如何获得正确的Num行滚动?

1 个答案:

答案 0 :(得分:1)

我找到了好方法。我需要编写Protected方法:

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

并且在每个中,我必须滚动Delta = Mouse.WheelScrollLines