zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    在IIS上部署 .Net Core 3.0 项目踩坑实录
    .net core3.0部署Linux服务器 使用Docker容器和Nginx反代理教程
    播放器 AxWindowsMediaPlayer控件的使用
    Github下载慢和下载过程中断等情况的解决方案
    GitHub第一次上传遇到的问题
    DataGridView && 增加复选框(checkbox)方法
    努力
    绘图:drawImage一个用法
    Tuple<T1,T2,.........T> 元组简单使用
    随机的标识符GUID
  • 原文地址:https://www.cnblogs.com/findumars/p/4915509.html
Copyright © 2011-2022 走看看