實現動畫顯示和關閉視窗

2021-06-05 11:02:56 字數 1525 閱讀 3455

win32 api函式 animatewindow 可以實現在顯示或者關閉窗體的時候產生動畫效果

語法:functionanimatewindow(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; 

inte***ce

uses windows, messages, sysutils, classes, graphics, controls, forms, dialogs,

stdctrls, comctrls;

type

tform1 = class(tform)

procedure formclosequery(sender: tobject; var canclose: boolean);

procedure formcreate(sender: tobject);

private

public

end;

var form1: tform1;

implementation

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.

c 如何實現子視窗關閉父視窗也關閉

其實是視窗間通訊的問題,在form1上開啟form2 form2 關閉時關閉form1 實現方法 在子視窗form2中宣告事件 public delegate void childclose public event childclose closefather 然後在它的關閉事件中觸發本事件 pr...

c 如何實現子視窗關閉父視窗也關閉

其實是視窗間通訊的問題,在form1上開啟form2 form2 關閉時關閉form1 實現方法 在子視窗form2中宣告事件 public delegate void childclose public event childclose closefather 然後在它的關閉事件中觸發本事件 pr...

動畫視窗擴充套件的實現

程式設計原理 要實現這種動畫視窗的程式設計效果,主要用到windows api中的animatewindow函式,通過在視窗的建立或消毀過程中運用該函式,來實現開啟和關閉程式時達到所希望的動畫視窗效果。animatewindow函式所提供的動畫效果十分豐富,我們可以在自己的程式中選擇各種不同的動畫效...