我正在使用OnIdle事件来制作一些简单的动画,它可以正常工作.但问题是,当用户开始移动窗口或调整窗口大小时,OnIdle事件将停止触发,直到移动/调整大小操作完成.
我需要检测何时发生这种情况,以便我可以暂停所有动画.但是如何检测窗口的移动?
LeG*_*GEC 11
我将使用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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5655 次 |
| 最近记录: |