响应鼠标

本文讨论了如何在程序中处理鼠标滚轮事件,包括检测滚轮的滚动方向并触发相应的滚动行为。文中提供了具体的Windows消息处理示例,如使用WM_VSCROLL消息实现上下滚动的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先检测鼠标滚轮是否响应,然后就向发送下面的消息  
  用SendMessage(TreeView->Handle,WM_VSCROLL,SB_LINEDOWN,0)来实现向下滚动一行  
   
  SB_LINEDOWN                     下移一行  
  SB_LINEUP                         上移一行  
  SB_PAGEDOWN                     下移一页  
  SB_PAGEUP                         上移一页  
  Top

10 楼stanely(俺是邢她汉子)回复于 2004-08-05 11:17:13 得分 0

Re:  
   
  先检测鼠标滚轮是否响应,然后就向发送下面的消息  
  用SendMessage(TreeView->Handle,WM_VSCROLL,SB_LINEDOWN,0)来实现向下滚动一行  
   
  SB_LINEDOWN                     下移一行  
  SB_LINEUP                         上移一行  
  SB_PAGEDOWN                     下移一页  
  SB_PAGEUP                         上移一页  
   
  谢谢,但是如何知道鼠标滚轮滚动了多少呢?Top

11 楼prophet2004(泡菜)回复于 2004-08-05 11:58:22 得分 10

处理消息   WM_MBUTTONDOWN  
  如果等于MK_MBUTTON就是中键按下了  
  怎么处理不同我再说了吧Top

12 楼capoatguitar(菠萝蜜汁红塔山)回复于 2004-08-05 14:03:08 得分 10

具体方法查看DELPHI帮助     WM_VSCROLL   里面有全部介绍。Top

13 楼stanely(俺是邢她汉子)回复于 2004-08-05 15:03:29 得分 0

谢谢各位的热心帮助!  
  我知道了那些OnMouseWheelXXX无相应的原因就是scrollbox没有焦点,而令其得到焦点的办法除了调用setfocus之外,还有就是让其内部控件得到焦点,而单纯的鼠标点击其本身无法使其得到焦点。但是如果内部是一对无法通过鼠标点击得到焦点的东西怎么办呢?比如tpanel和tspeedbutton  
   
  我想捕捉scrollbox的鼠标按下消息,但是我用重载wndproc的办法,WM_LBUTTONDOWN似乎永远收不到。难道鼠标按下不是这个消息么?  
   
  另外,请问pageup和pagedown的vkCode分别是什么?  
   
  谢谢!Top

14 楼stanely(俺是邢她汉子)回复于 2004-08-05 15:04:33 得分 0

对了,还有一点,我不想用onmousedown这个事件得到鼠标按下,因为子类还要使用它。Top

15 楼xufenglong(天天向上)回复于 2004-08-05 15:13:37 得分 10

procedure   TForm1.FormMouseWheel(Sender:   TObject;   Shift:   TShiftState;  
      WheelDelta:   Integer;   MousePos:   TPoint;   var   Handled:   Boolean);  
  begin  
      if   WheelDelta   <   0   then  
        SendMessage(sbxBL.Handle,WM_VSCROLL,   SB_LINEDOWN,   0)  
      else  
        SendMessage(sbxBL.Handle,WM_VSCROLL,   SB_LINEUP,   0);  
  end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值