我的主頁: http://www.tommstudio.com/
在應用程序中引入圖片淡入及淡出,可以讓用戶界面更加美觀。以前報刊雜志中介紹
的常用方法有兩種:一是自己寫程序,諸個象素進行混合漸變;二是使用DirectX,建立一
個帶Alpha通道的Surface。第一種,效果可以自己控制,但比較麻煩,而且一般不容易生
成硬件優化的代碼;第二種速度很快,卻需要使用DirectX庫。
    本文結合Delphi實例代碼,介紹兩種簡單快速的實現方法,算是一個總結吧,希望能
對初學者有所幫助。
一:AnimateWindow函數的使用:
    (一)函數原型:
|  | 
    (二)參數設置:
         hwnd :用“窗體名.handle”即可,如:Form1.handle;
         dwTime:一般情況下用400比較合適,我偏向于1000;
         dwFlags:可以設為多種效果,詳見MSDN,這里我只介紹淡入淡出用到的參數AW_BLEND;
                  如果是淡入,設為AW_BLEND即可,如果是淡出,設為AW_BLEND or AW_HIDE。
    (三)程序實例:
         新建一個工程,在生成的窗體Form1上添加一個按鈕Button1,Button1的Caption設為“淡
         出”;接下來添加如下兩段代碼,實現淡入淡出:
         1、淡入:雙擊Form1,在其“OnCreate”事件中添加:
|  | 
         2、淡出:雙擊Button1,在其“OnClick”事件中添加:
|  | 
         整個程序的PRocedure如下:
|  | 
二、AlphaBlend屬性結合Timer組件:
     (一)原理:
          在Delphi6.0以上(6.0以下我不了解),每個窗體有AlphaBlend屬性和AlphaBlendValue
          屬性,將AlphaBlend屬性設為True,然后在Timer組件中隨著時間改變AlphaBlendValue的
          值(0-255)即可。
     (二)程序實例:
          新建一個工程,并添加一個窗體Form2,將其AlphaBlend屬性設置為True;在窗體Form1上添
          加一個按鈕Button1,Caption屬性設為“淡入”,在Form2上添加一個按鈕Button1,Caption
          屬性設為“淡出”;另外,在Form2上添加兩個Timer組件Timer1、Timer2,將它們的Interval
          屬性設為3(越大動畫時間越長),Enable設為False;接下來添加如下4段代碼:
         1、雙擊Form1上的Button1,在其“OnCreate”事件中添加:
|  | 
         2、雙擊Form2上的Button1,在其“OnCreate”事件中添加:
            Timer2.Enabled:=true;       //啟動Timer2,控制窗體可見度-減少
         3、雙擊Form2上的Timer1,在其“OnTimer”事件中添加:
|  | 
         4、雙擊Form2上的Timer2,在其“OnTimer”事件中添加:
|  | 
新聞熱點
疑難解答