日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

動畫關閉窗口的示例

動畫關閉窗口的示例

更新時間:2022-05-13 文章作者:未知 信息來源:網絡 閱讀次數:

可以像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.

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

主站蜘蛛池模板: 欧美成人精品一区二区 | 国产福利小视频在线观看 | 亚洲欧美日韩一区高清中文字幕 | 免费日本在线视频 | 国内外成人免费在线视频 | 97久久天天综合色天天综合色hd | 黑人video粗暴日本野外 | 日本浮力影院 | 亚洲伊人久久大香线蕉影院 | 亚洲m男在线中文字幕 | 午夜a视频 | 亚洲综合久久伊人热 | 91久久视频| 黄网站色在线视频免费观看 | 人人澡人人澡 | 亚洲人成在线免费观看 | 久久综合九色综合网站 | 99久久精品国产高清一区二区 | 国产亚洲精品精品国产亚洲综合 | 91麻豆精品一二三区在线 | 午夜影院在线看 | 久久91视频 | 青青国产成人久久激情91麻豆 | 欧美韩国日本在线观看 | 亚洲一区二区三区播放在线 | 日韩爽爽爽视频免费播放 | 亚洲成人免费看 | 日本性网站 | 精品国产专区91在线尤物 | 99精品国产高清一区二区 | 草久久久 | 国产成人精品亚洲日本在线观看 | 免费小视频 | 香港日本韩国三级网站 | 在线播放成人高清免费视频 | 自愉自愉产区一区 | 欧美日韩精品一区二区在线播放 | 成人欧美一区二区三区 | 亚洲精品久久久久午夜福 | 国产精品免费观看视频播放 | 欧美体内she精视频 欧美体内she精视频毛片 |