VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 820|回复: 1

我使用的是六键鼠标,请问各位大侠,怎样截获鼠标第四键发出的消息呢?

[复制链接]

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-2-29 21:30:01 | 显示全部楼层 |阅读模式
我使用的是六键鼠标(就是那种游戏鼠标),请问各位大侠,怎样截获鼠标第四键发出的消息呢?

//我是这样写的代码,但是Button的值只有鼠标左右键和中间的滚轮键,控制不了鼠标第四键的
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button=mbLeft then//鼠标左键
    ShowMessage('Left')
  else if Button=mbRight then//鼠标右键
    ShowMessage('Right')
  else//鼠标中间的滚轮
    ShowMessage('Middle');
end;

请问我应该怎样写代码,才能控制鼠标的第四键呢?我想按下鼠标第四键后,也ShowMessage一个消息。  


回复

使用道具 举报

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-7-24 11:00:02 | 显示全部楼层
我用SPY++发现当点击鼠标第四键的时候,发送的消息是0x020B,所以我重载了窗口函数,来拦截此消息。
procedure TForm1.WndProc(var Msg: TMessage);
begin
  if Msg.Msg = 523 then
    ShowMessage('Catch the mouse fifth key message!');
  inherited;
end;

如果单独一个Form的话,就可以拦截住这个消息。但是当我在这个Form上面放了一个Panel后(属性设置为Client),就不能拦截此消息了。我想问各位大侠,是不是窗口函数只是针对Form啊?如果我在这个Form上面已经放了很多控件,请问我应该怎样来拦截这个消息呢,谢谢了哈!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表