• AnimateWindow


    WINDOWS提供了一个很有意思的函数:AnimateWindow。
    之前我想实现像MSN,QQ这些收到邮件的时候动画方式,从地下升上来的显示一个窗口,感觉很麻烦,自己去写代码,效果很不理想,今天无意中发现了一个函数AnimateWindow,能很好的实现这个功能。并且网上找了一个例子:

    // 主窗体:
    unit Unit1;
     
    interface
     
    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls;
     
    type
    TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;
     
    var
    Form1: TForm1;
     
    implementation
    
    // 动画显示窗体:
    uses Unit2;
     
    var
    mesfrm:tform2;
     
    {$R *.dfm}
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    mesfrm:=tform2.Create(application);
    mesfrm.Show;
    end;
     
    procedure TForm1.Button2Click(Sender: TObject);
    begin
    mesfrm.close;
    end;
     
    end.
    
    unit Unit2;
     
    interface
     
    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs;
     
    type
    TForm2 = class(TForm)
    private
    { Private declarations }
    public
    { Public declarations }
    procedure Show;
    procedure close;
    end;
     
    var
    Form2: TForm2;
     
    implementation
     
    {$R *.dfm}
     
    function ShowWindows(WHandle:HWND;DispMode:Integer): Boolean;
    var Flag:array [0..11] of Int64;
    begin
    if DispMode=1 then begin
    //显示
    Flag[0]:=AW_ACTIVATE+AW_HOR_POSITIVE+AW_VER_POSITIVE+AW_SLIDE;//左上至右下 滑行效果
    Flag[1]:=AW_ACTIVATE+AW_HOR_NEGATIVE+AW_VER_POSITIVE+AW_SLIDE;//右上至左下 滑行效果
    Flag[2]:=AW_ACTIVATE+AW_CENTER+AW_SLIDE; // 中心向四周 滑行效果
    Flag[3]:=AW_ACTIVATE+AW_HOR_POSITIVE+AW_SLIDE; //左 至右 滑行效果
    Flag[4]:=AW_ACTIVATE+AW_HOR_NEGATIVE+AW_SLIDE; //右至左 滑行效果
    Flag[5]:=AW_ACTIVATE+AW_VER_POSITIVE+AW_SLIDE; //上至下 滑行效果
    Flag[6]:=AW_ACTIVATE+AW_HOR_POSITIVE+AW_VER_POSITIVE+AW_BLEND;//左上至右下 淡入淡出
    Flag[7]:=AW_ACTIVATE+AW_HOR_NEGATIVE+AW_VER_POSITIVE+AW_BLEND;//右上至左下 淡入淡出
    Flag[8]:=AW_ACTIVATE+AW_HOR_POSITIVE+AW_BLEND; //左至右 淡入淡出
    Flag[9]:=AW_ACTIVATE+AW_HOR_NEGATIVE+AW_BLEND; //右至左 淡入淡出
    Flag[10]:=AW_ACTIVATE+AW_VER_POSITIVE+AW_BLEND; //上至下 淡入淡出
    Flag[11]:=AW_ACTIVATE+AW_CENTER+AW_BLEND; //中心向四周 淡入淡出
    end;
    if DispMode=2 then begin
    //关闭
    Flag[0]:=AW_HIDE+AW_HOR_POSITIVE+AW_VER_NEGATIVE+AW_SLIDE;//左上至右下 滑行效果
    Flag[1]:=AW_HIDE+AW_HOR_NEGATIVE+AW_VER_NEGATIVE+AW_SLIDE;//右上至左下 滑行效果
    Flag[2]:=AW_HIDE+AW_CENTER+AW_SLIDE; // 中心向四周 滑行效果
    Flag[3]:=AW_HIDE+AW_HOR_POSITIVE+AW_SLIDE; //左 至右 滑行效果
    Flag[4]:=AW_HIDE+AW_HOR_NEGATIVE+AW_SLIDE; //右至左 滑行效果
    Flag[5]:=AW_HIDE+AW_VER_NEGATIVE+AW_SLIDE; //上至下 滑行效果
    Flag[6]:=AW_HIDE+AW_HOR_POSITIVE+AW_VER_NEGATIVE+AW_BLEND;//左上至右下 淡入淡出
    Flag[7]:=AW_HIDE+AW_HOR_NEGATIVE+AW_VER_NEGATIVE+AW_BLEND;//右上至左下 淡入淡出
    Flag[8]:=AW_HIDE+AW_HOR_POSITIVE+AW_BLEND; //左至右 淡入淡出
    Flag[9]:=AW_HIDE+AW_HOR_NEGATIVE+AW_BLEND; //右至左 淡入淡出
    Flag[10]:=AW_HIDE+AW_VER_POSITIVE+AW_BLEND; //上至下 淡入淡出
    Flag[11]:=AW_HIDE+AW_CENTER+AW_BLEND; //中心向四周 淡入淡出
    end;
    Randomize;
    Result := AnimateWindow(WHandle,500,Flag[Random(6)]);
    end;
     
    { TForm2 }
     
    procedure TForm2.close;
    begin
    // if AnimateWindow( Handle,200,AW_VER_POSITIVE+AW_HIDE)=false then
    if ShowWindows(Handle,2)=false then
    begin
    showmessage('窗体退出出错');
    free;
    end;
    inherited close;
    end;
     
    procedure TForm2.Show;
    begin
    top:=430;
    left:=560;
    // if AnimateWindow(Handle,200,AW_VER_NEGATIVE)=false then
    if ShowWindows(Handle,1)=false then
    begin
    showmessage('窗体显示出错');
    free;
    end;
    inherited show;
    end;
     
    end.

    http://www.cnblogs.com/barryhong/archive/2009/04/26/1443798.html

  • 相关阅读:
    2014年10月20----数组1
    类型--2014年10月19日
    2014年10月17----类别
    2014年10月16号--for语句实例
    2014年10月12日——运算符
    java练习题:解一元二次方程、判断闰年、判断标准身材、三个数取最大值
    Java安装与环境配置
    SQL语言增加、修改、删除数据的语法
    StringBuffer的用法(转)
    JSTL标签库简介
  • 原文地址:https://www.cnblogs.com/findumars/p/4915509.html
Copyright © 2020-2023  润新知