如何分辨鼠标的两轮?

roclui 2005-01-14 03:02:19
用Form的Wheel事件无法区分左右轮,还是上下轮,请问如何实现?
...全文
70 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackie168 2005-01-19
  • 打赏
  • 举报
回复
private
Procedure OnMouseWheel(Var Msg :TMsg;var Handled:Boolean);
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
Procedure TForm1.OnMouseWheel(Var Msg :TMsg;var Handled:Boolean);
begin
if Msg.message = WM_MouseWheel then
begin
if Msg.wParam > 0 then
begin
showmessage('逆时针滚动');
end
else
begin
showmessage('顺时针滚动');
end;
Handled:= True;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage:=OnMouseWheel; // 截获鼠标滚动事件
end;

end.
dext 2005-01-19
  • 打赏
  • 举报
回复
嗬嗬,我这里没有所谓的4D鼠标,不能帮你测试。
不过Word可以使用两个滚轮是在装驱动的前提下吗?
roclui 2005-01-19
  • 打赏
  • 举报
回复
谢谢大家的发言,可是好象没有解决我的问题。请大家继续讨论这个话题。因为在Word等大型软件中都能识别两轮鼠标上下,左右的滚动,方便大气!所以必须在软件中实现对滚轮的支持。还因为我们都习惯了用滚轮来操作。
何鲁青 2005-01-14
  • 打赏
  • 举报
回复
csdnxlh 2005-01-14
  • 打赏
  • 举报
回复
学习!
dext 2005-01-14
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwui/html/BestPracticesforSupportingMicrosoftMouseandKeyboardDevices.asp

上面就是水平滚轮的使用,我大致看了一下,内容是这样的:

Windows Longhorn直接支持水平滚轮

Windows 2000 & XP 不直接支持水平滚轮, 但可以安装相应的IntelliType Pro或IntelliPoint 鼠标驱动程序来支持水平滚轮

要捕捉的消息是WM_MOUSEHWHEEL //多一个H
参数意义和WM_MOUSEWHEEL一样

Kshape 2005-01-14
  • 打赏
  • 举报
回复
上面只是一个例子
没有解决楼主的问题
希望能起到抛砖引玉的作用
Kshape 2005-01-14
  • 打赏
  • 举报
回复
好象是这样的:
TMouseButton = (mbLeft, mbRight, mbMiddle);

在控件的OnMouseDown、OnMouseUp、OnMouseMove 中用
if Button in [mbLeft] then //按下左键
begin
...
end;

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧