摘要载入中…    请稍等…












内容载入中…    请稍等…

如长时间看不到内容,请关闭浏览器,重新打开此页!

芯友首页 应用软件 编程开发 网络硬件 资源下载 动漫音乐 精美图库 芯友论坛 视频教程 电脑技术QQ群:73422782
 ★★photoshop学友-史上最强播放器★★
 位置:编程开发>Deiphi>Deiphi窗体文章
◎→ 本类最新
DELPHI动态生成控件
Delphi编程中创建一个启动闪现窗
在win95,win98下实现半透明的窗口
拖动无标题栏窗体的方法
用Delphi 控制窗体的大小
使MDI窗口有一个背景图象或使它平
软件启动画面中启动状态的显示
◎→相关资源
C语言入门视频教程
C#编程WinForm入门视频
Asp.net入门视频教程下载
VC++编程视频教程下载
VB窗体文章
HTML入门教程
Deiphi实例教程
Deiphi窗体文章
Deiphi数据库编程
Deiphi网络编程
Deiphi图形图象文章
Deiphi系统文件
◎→ 热门资源
倪光南力挺中国文档标准
网银17200元神秘蒸发
Listview中实现点击栏目标题排序
Microsoft Agent技术在Delphi中的
MIDAS中动态强制约束编程
Chuck Jazdzewski的离开意味着De
COM程序编写入门(三)

动画关闭窗口的示例


日期:2008-10-20 21:49:19    来源:
   
 ·DELPHI中利用对象的常用属性制作动画 ·Delphi模拟最小化恢复关闭按纽(2)
 ·Delphi4的窗口融合技术
动画关闭窗口的示例


可以像QQ一样实现最小化窗口时窗口到系统栏的动画效果。

Unit main;

Interface

Uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
   RXShell, StdCtrls;
Type TZoomDirection = (ZoomFormOpen, ZoomFormClosed);//枚举类型
Type
   TFormMain = Class(TForm)
      TrayIcon1: TRxTrayIcon;//Rx组件里的系统栏图标控件
      Label1: TLabel;
      Procedure FormShow(Sender: TObject);
    procedure TrayIcon1DblClick(Sender: TObject);
   Private
      Procedure OnMinCmd(Var Message: Tmessage); Message WM_SYSCOMMAND; //捕获消息
      Procedure FrmZoomToTray(Frm: TForm; Direction: TZoomDirection); //产生窗体从系统工作区中进入或出来的动态效果子过程
   Public
    { Public declarations }
   End;
Var
   FormMain: TFormMain;

Implementation

{$R *.DFM}

Procedure TFormMain.FormShow(Sender: TObject);
Begin
ShowWindow(Application.Handle, SW_HIDE);//消除任务栏显示
End;

Procedure TFormMain.OnMinCmd(Var Message: Tmessage);
Begin
   If (Message.WParam = SC_MINIMIZE) Then //如果是最小化消息
      Begin
         TrayIcon1.Active := True; //显示图标
         FrmZoomToTray(FormMain,ZoomFormClosed);
         FormMain.Hide; //隐藏窗体
         Exit;
      End;
   Inherited; //让窗体处理其它消息
End;

Procedure TFormMain.FrmZoomToTray(Frm: TForm; Direction: TZoomDirection);
Var
   TrayWnd: HWND;
   sClassName: Array[0..255] Of Char;
   xFrom, xTo: TRect;
Begin
   If (Direction = ZoomFormClosed) And (Frm.Visible = False) Then
      Exit;
   If (Direction = ZoomFormOpen) And (Frm.Visible = True) Then
      Exit;
   TrayWnd := FindWindow('Shell_TrayWnd', Nil);
   TrayWnd := GetWindow(TrayWnd, GW_CHILD);
   Repeat
      GetClassName(TrayWnd, @sClassName, 255);
      If StrPas(sClassName) = 'TrayNotifyWnd' Then
         Break;
      TrayWnd := GetWindow(TrayWnd, GW_HWNDNEXT);
   Until TrayWnd = 0;
   Case Direction Of
      ZoomFormOpen:
         Begin
            GetWindowRect(TrayWnd, xFrom);
            xFrom.Left := (xFrom.Right - (xFrom.Right - xFrom.Left) Div 2);
            xFrom.Right := xFrom.Left + 1;
            GetWindowRect(Frm.Handle, xTo);
            DrawAnimatedRects(Frm.Handle, IDANI_OPEN Or IDANI_CAPTION, xFrom, xTo);
         End;
      ZoomFormClosed:
         Begin
            GetWindowRect(Frm.Handle, xFrom);
            GetWindowRect(TrayWnd, xTo);
            xTo.Left := (xTo.Right - (xto.Right - xTo.Left) Div 2);
            xTo.Right := xTo.Left + 1;
            DrawAnimatedRects(Frm.Handle, IDANI_CLOSE Or IDANI_CAPTION, xFrom, xTo);
         End;
   End;
End;

procedure TFormMain.TrayIcon1DblClick(Sender: TObject);
begin
   TrayIcon1.Active := False;
   FrmZoomToTray(FormMain,ZoomFormopen);
   FormMain.Show;
end;

End.

 [1]

DELPHI编程实现3DS的动画播放

Delphi模拟最小化恢复关闭按纽(1)

“网络蚂蚁”和“FlashGet”的悬浮窗口的实现

--->Flash Movie Player V3.4┊浏览Flash动画、捕获Flash图像工具┊英文绿色特别版
--->GreenBrowser V4.5.0423 简体中文版┊多窗口多特性的浏览器
--->Gosurf Browser 2.76.704.8178┊最IN多页面多窗口浏览器┊多国语言绿色免费版
--->Avant Browser V11.5 Build 8┊基于IE 内核多窗口浏览器┊多国语言官方便携版
--->AcooBrowser (阿库浏览器) V1.58 build 770┊强大的多窗口多功能浏览器┊多国语言绿色特别版
Tags:  动画 关闭 窗口

芯友网版权所有 1999-2006 | 著作权与商标声明 | 法律声明 | 服务条款 | 隐私声明 | 联系我们