怎样让TScrollBox响应鼠标滚轮操作? rt 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 TSCROLLBOX有几个事件:ONMOUSEWHEELONMOUSEWHEELDOWNONMOUSEWHEELUP专门用来响应鼠标滚轮操作. 参透DELPHI那本书上讲了,比较详细 Re:TSCROLLBOX有几个事件:ONMOUSEWHEELONMOUSEWHEELDOWNONMOUSEWHEELUP专门用来响应鼠标滚轮操作.我也看到了这几个事件,但是根本就形同虚设,无论滚轮怎么滚,都不会触发阿? 先检测鼠标滚轮是否响应,然后就向发送下面的消息用SendMessage(TreeView->Handle,WM_VSCROLL,SB_LINEDOWN,0)来实现向下滚动一行SB_LINEDOWN 下移一行SB_LINEUP 上移一行SB_PAGEDOWN 下移一页SB_PAGEUP 上移一页 Re:先检测鼠标滚轮是否响应,然后就向发送下面的消息用SendMessage(TreeView->Handle,WM_VSCROLL,SB_LINEDOWN,0)来实现向下滚动一行SB_LINEDOWN 下移一行SB_LINEUP 上移一行SB_PAGEDOWN 下移一页SB_PAGEUP 上移一页谢谢,但是如何知道鼠标滚轮滚动了多少呢? 处理消息 WM_MBUTTONDOWN如果等于MK_MBUTTON就是中键按下了怎么处理不同我再说了吧 具体方法查看DELPHI帮助 WM_VSCROLL 里面有全部介绍。 谢谢各位的热心帮助!我知道了那些OnMouseWheelXXX无相应的原因就是scrollbox没有焦点,而令其得到焦点的办法除了调用setfocus之外,还有就是让其内部控件得到焦点,而单纯的鼠标点击其本身无法使其得到焦点。但是如果内部是一对无法通过鼠标点击得到焦点的东西怎么办呢?比如tpanel和tspeedbutton我想捕捉scrollbox的鼠标按下消息,但是我用重载wndproc的办法,WM_LBUTTONDOWN似乎永远收不到。难道鼠标按下不是这个消息么?另外,请问pageup和pagedown的vkCode分别是什么?谢谢! 对了,还有一点,我不想用onmousedown这个事件得到鼠标按下,因为子类还要使用它。 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; 補充sbxbl為ScrollBox的名字 另外,请问pageup和pagedown的vkCode分别是什么?我也不知道怎么得到!这个不能帮你了不过你可以发消息啊向SB_PAGEDOWN 下移一页和SB_PAGEUP 上移一页 pageup VK_UP = 38; pagedown VK_DOWN = 40; 谢谢各位的帮助,可是我一直不明白为什么其他控件的WM_LBUTTONDOWN消息能够收到,而scrollbox收不到这个消息? Re:pageup VK_UP = 38; pagedown VK_DOWN = 40;如果这样,那么上下方向键的又是多少呢? 查哪个键的键值,就找一个控件,在ONMOUSEDOWN事件中写:showmessage(inttostr(key)); 我不想用onmousedown这个事件得到鼠标按下,因为子类还要使用它 老大.回去翻了所有的资料.自己也试了N次.但我的机子上它可以响应啊. 我的机子为:WINXP+D6.USB接口鼠标. 回复人: stanely(俺是邢她汉子) ( ) 信誉:108 2004-08-05 15:44:00 得分: 0 Re:pageup VK_UP = 38; pagedown VK_DOWN = 40;如果这样,那么上下方向键的又是多少呢? 自己打开 DELPHI 输入VK_UP 然后再上面按 ctrl+鼠标左键 然后打开得文件里面有所有得键值 strupper如何用? 请问MinutesBetween函数返回的是什么? 急!请问DBGrid中点击滚动条触发的是哪一个事件? 在哪里可以调试存储过程 通用查询控件或代码,400分. 夸网段联结,总是联结不上 使用TServerSocket控件,拔掉网线,过很长时间才能检测到,如何解决? 如何使olecontainer可以保存 知道一个可执行文件名,怎样得到它的绝对路径呢? 有谁知道,如何根据录入的汉字得到其拼音吗? 真的好怪,setcommstate报错??请高手求求我啊 请高手指点一二.....
ONMOUSEWHEEL
ONMOUSEWHEELDOWN
ONMOUSEWHEELUP专门用来响应鼠标滚轮操作.
ONMOUSEWHEEL
ONMOUSEWHEELDOWN
ONMOUSEWHEELUP专门用来响应鼠标滚轮操作.我也看到了这几个事件,但是根本就形同虚设,无论滚轮怎么滚,都不会触发阿?
用SendMessage(TreeView->Handle,WM_VSCROLL,SB_LINEDOWN,0)来实现向下滚动一行SB_LINEDOWN 下移一行
SB_LINEUP 上移一行
SB_PAGEDOWN 下移一页
SB_PAGEUP 上移一页
用SendMessage(TreeView->Handle,WM_VSCROLL,SB_LINEDOWN,0)来实现向下滚动一行SB_LINEDOWN 下移一行
SB_LINEUP 上移一行
SB_PAGEDOWN 下移一页
SB_PAGEUP 上移一页谢谢,但是如何知道鼠标滚轮滚动了多少呢?
如果等于MK_MBUTTON就是中键按下了
怎么处理不同我再说了吧
我知道了那些OnMouseWheelXXX无相应的原因就是scrollbox没有焦点,而令其得到焦点的办法除了调用setfocus之外,还有就是让其内部控件得到焦点,而单纯的鼠标点击其本身无法使其得到焦点。但是如果内部是一对无法通过鼠标点击得到焦点的东西怎么办呢?比如tpanel和tspeedbutton我想捕捉scrollbox的鼠标按下消息,但是我用重载wndproc的办法,WM_LBUTTONDOWN似乎永远收不到。难道鼠标按下不是这个消息么?另外,请问pageup和pagedown的vkCode分别是什么?谢谢!
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;
sbxbl為ScrollBox的名字
不过你可以发消息啊向SB_PAGEDOWN 下移一页
和SB_PAGEUP 上移一页
pagedown VK_DOWN = 40;
pagedown VK_DOWN = 40;如果这样,那么上下方向键的又是多少呢?
我的机子为:WINXP+D6.USB接口鼠标.
Re:pageup VK_UP = 38;
pagedown VK_DOWN = 40;如果这样,那么上下方向键的又是多少呢?
自己打开 DELPHI 输入VK_UP 然后再上面按 ctrl+鼠标左键 然后打开得文件里面有所有得键值