加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi:检测窗口移动的开始和结束

发布时间:2020-12-15 03:55:45 所属栏目:大数据 来源:网络整理
导读:我正在使用OnIdle事件来制作一些简单的动画,它可以正常工作. 但问题是,当用户开始移动窗口或调整窗口大小时,OnIdle事件将停止触发,直到移动/调整大小操作完成. 我需要检测何时发生这种情况,以便我可以暂停所有动画.但是如何检测窗口的移动? 解决方法 我将使
我正在使用OnIdle事件来制作一些简单的动画,它可以正常工作.
但问题是,当用户开始移动窗口或调整窗口大小时,OnIdle事件将停止触发,直到移动/调整大小操作完成.

我需要检测何时发生这种情况,以便我可以暂停所有动画.但是如何检测窗口的移动?

解决方法

我将使用mghie评论:为动画使用计时器,并使用消息处理程序激活/停用它.

在您的情况下,您可能希望添加以下消息处理程序:

//fired when starting/ending a "move" or "size" window
procedure WMEnterSizeMove(var Message: TMessage) ; message WM_ENTERSIZEMOVE;
procedure WMExitSizeMove(var Message: TMessage) ; message WM_EXITSIZEMOVE;


  procedure TForm.WMEnterSizeMove(var msg: TMessage);
  begin
    AnimationTimer.Enabled := false;
    inherited;
  end;

  procedure TForm.WMExitSizeMove(var msg: TMessage);
  begin
    AnimationTimer.Enabled := true;
    inherited;
  end;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读