实现动画显示和关闭窗口

来源:互联网 发布:淘宝详情页教程视频 编辑:程序博客网 时间:2024/06/08 19:03

Win32 API函数 AnimateWindow 可以实现在显示或者关闭窗体的时候产生动画效果

语法: function AnimateWindow(hWnd: HWND; dwTime: DWORD; dwFlags: DWORD): BOOL; stdcall;

参数:hWnd : 想要显示动画窗体的句柄
dwTime : 动画时间数,单位毫秒
dwFlags : 显示方式,取值如下定义
1.AW_HOR_POSITIVE = $00000001; // 从左向右开屏
2.AW_HOR_NEGATIVE = $00000002; // 从右向左开屏
3.AW_VER_POSITIVE = $00000004; // 从上向下开屏
4.AW_VER_NEGATIVE = $00000008; // 从下向上开屏
5,AW_CENTER = $00000010; // 从中心向四周扩展,在关闭动画中则为从四周向中心收缩
6.AW_HIDE = $00010000; // 关闭时候与前面的定义组合使用,如AW_HIDE or AW_CENTER
7.AW_ACTIVATE = $00020000; // 与1-5组合,开屏使用
8.AW_SLIDE = $00040000; // 与1-5 6/7 组合,产生滑行效果
9.AW_BLEND = $00080000;/ /Win2000下使用,淡入淡出效果

例子:

unit Unit1; interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls, ComCtrls;typeTForm1 = class(TForm)procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);procedure FormCreate(Sender: TObject);private{ Private declarations }public{ Public declarations }end;var Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);begin   //数字越大,速度越慢,如500,必须加AW_HIDE ,关闭窗口事件中,否则不出效果AnimateWindow(handle,200,AW_HIDE+AW_CENTER);end;procedure TForm1.FormCreate(Sender: TObject);begin          //数字越大,速度越慢,如200可改为500,1000等AnimateWindow(handle,200,AW_CENTER);end;end.  



原创粉丝点击