高手指点!如何设置触发OnMouseMove事件的间隔?

cxz7531 2003-08-26 09:36:18
我在OnMouseMove事件里写了大量的代码,由于OnMouseMove事件触发太频繁,经常来不及反映,怎么设置触发OnMouseMove事件的间隔
...全文
322 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengjn 2003-08-26
  • 打赏
  • 举报
回复
EvenStart: longint;
procedure WMMouseMove(var Message: TWMMouseMove); message WM_MOUSEMOVE;

procedure WMMouseMove(var Message: TWMMouseMove);
begin
if (GetTickCount - EvenStart > 你的时间间隔(毫秒单位)) or
(EvenStart = 0) then
begin
MouseMove(KeysToShiftState(Keys), Message.XPos, Message.YPos);
EvenStart:= GetTickCount;
end;
end;

在Create中添加
EvenStart:= 0;
merkey2002 2003-08-26
  • 打赏
  • 举报
回复
没有这个设置
不能无中生有啊
还是老老实实用timer好啦
leonkim 2003-08-26
  • 打赏
  • 举报
回复
即使是写事件也要用到Timer.
触发WM_mousemove的时间是操作系统定的,而且我查了msdn,好像没有可以设置时间间隔的方法.
如果可以改变的话,那其他的应用程序岂不是也要同时改了.
leonkim 2003-08-26
  • 打赏
  • 举报
回复
楼上的主意很好.
另外如果不怕麻烦可以自己写一个事件.
cxz7531 2003-08-26
  • 打赏
  • 举报
回复
老兄, 我就是不想用TIMER才发帖子问大家的,再想想办法吧
上海老李 2003-08-26
  • 打赏
  • 举报
回复
加个TIMER,再来一个全局变量,每次执行完MOUSEMOVE里的设全局变量为FALSE,TIMER中让全局变量为TRUE,当全局变量为TRUE时执行MOUSEMOVE里的东西

1,183

社区成员

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

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