delphi 让ScrollBox响应鼠标滚轮事件
来源:互联网 发布:数据采集费发票 编辑:程序博客网 时间:2024/05/01 22:59
procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
if WheelDelta < 0 then
ScrollBox1.Perform(WM_VSCROLL,SB_LINEDOWN,0)
else
ScrollBox1.Perform(WM_VSCROLL,SB_LINEUP,0);
end;
ScrollBox1.Perform(WM_VSCROLL,SB_LINEDOWN,0) 改成 SendMessage(ScrollBox1.Handle,WM_VSCROLL,SB_LINEDOWN,0),
ScrollBox1.Perform(WM_VSCROLL,SB_LINEUP,0) 改成 SendMessage(ScrollBox1.Handle,WM_VSCROLL,SB_LINEUP,0) 也行。
一样的原理。
分别在OnMouseWheelDown和OnMouseWheelUp时间里发送鼠标滚轮上滚和下滚的消息也行。
type
TFormDemo = class(TForm)
ScrollBox: TScrollBox;
Panel: TPanel;
procedure FormCreate(Sender: TObject);
private
OldScrollBoxWindowProc: TWndMethod;
procedure NewScrollBoxWindowProc(var Message: TMessage);
procedure OnMessageOwn(var Msg: TMsg; var Handled: Boolean);
public
{ Public declarations }
end;
var
FormDemo: TFormDemo;
implementation
{$R *.dfm}
{ TFormDemo }
procedure TFormDemo.NewScrollBoxWindowProc(var Message: TMessage);
var
Pace: Integer;
begin
if Message.Msg = WM_MouseWheel then
begin
Pace := Message.wParam ;
if Pace > 120 then
ScrollBox.VertScrollBar.Position := ScrollBox.VertScrollBar.Position + 10
else
ScrollBox.VertScrollBar.Position := ScrollBox.VertScrollBar.Position - 10;
end;
OldScrollBoxWindowProc(Message);
end;
procedure TFormDemo.FormCreate(Sender: TObject);
begin
OldScrollBoxWindowProc := ScrollBox.WindowProc;
ScrollBox.WindowProc := NewScrollBoxWindowProc;
Application.OnMessage := OnMessageOwn;
end;
procedure TFormDemo.OnMessageOwn(var Msg: TMsg; var Handled: Boolean);
begin
if Msg.message = WM_MOUSEWHEEL then
begin
SendMessage(ScrollBox.Handle, WM_MouseWheel, HiWord(Msg.wParam), Msg.lParam);
Handled := False;
end;
end;
上面是截获滚轮消息并传递给ScrollBox, 滚动的步长我设为10
- delphi 让ScrollBox响应鼠标滚轮事件
- delphi 让ScrollBox响应鼠标滚轮事件
- delphi 让ScrollBox响应鼠标滚轮事件
- ScrollBox响应鼠标滚轮事件
- BCB如何处理FORM、ScrollBox的鼠标滚轮事件
- 让TscrollBox响应鼠标滚轮的滚动事件
- 让MSflexgrid支持鼠标滚轮事件
- jquery的鼠标滚轮插件 Mousewheel响应跨浏览器的鼠标滚轮事件
- jquery的鼠标滚轮插件 Mousewheel响应跨浏览器的鼠标滚轮事件
- map控件中对鼠标滚轮事件的响应
- 让minigui的IAL支持鼠标中键滚轮事件
- 鼠标滚轮事件
- javascript: 鼠标滚轮事件
- 兼容鼠标滚轮事件
- SWT:鼠标滚轮事件
- 鼠标--滚轮事件
- 鼠标滚轮事件
- 浅谈鼠标滚轮事件
- 对象创建的方法二之------构造函数模式
- SQL Server数据库表锁定原理以及如何解除表的锁定
- vbox
- 自定义报表(finreport功能,价格)
- windows控制台中文乱码解决方法
- delphi 让ScrollBox响应鼠标滚轮事件
- 使用nginx配置django应用
- ANDROID中判断网络连接是否可用
- JS去空格
- osTube【vimp】搭建
- (二)配置hadoop-------安装配置hadoop并且设置ssh
- eclipse下通过hibernate tools实现hibernate反向工程
- linux内核input子系统解析
- 别了,CNNC