使用AnimateWindow來實現窗口淡入淡出(主要有四種動畫,滾動,滑動,折疊或展開,和淡入淡出)


如果是在VC6下進行編譯,應引入下面的預編譯宏,注意放在windows.h的前面
#undef  WINVER   
#define  WINVER   0x500
為什么要引入上面的宏呢?看看winuser.h里面該API的聲明就明白了:
#if(WINVER >= 0x0500)
WINUSERAPI
BOOL
WINAPI
AnimateWindow(
    HWND hWnd,
    DWORD dwTime,
    DWORD dwFlags);
#endif /* WINVER >= 0x0500 */
如果你不進行這個宏的從定義,該API就被排除了,編譯會有error。

Declared in Winuser.h, include Windows.h

函數原型:
BOOL AnimateWindow(
    HWND hwnd,
    DWORD dwTime,
    DWORD dwFlags);   
   
函數功能:
該函數能在顯示與隱藏窗口時產生特殊類型的動畫效果,主要有四種動畫,滾動,滑動,折疊或展開,和淡入淡出。

參數含義:
hwnd: 指定產生動畫的窗口的句柄。
dwTime:指明動畫持續的時間(以微秒計),完成一個動畫的標准時間為200微秒。
dwFags:指定動畫類型,這個參數可以是一個或多個下列標志的組合。標志描述:    
    AW_SLIDE:  使用滑動類型,缺省則為滾動動畫類型,當使用AW_CENTER標志時,這個標志就被忽略。    
    AW_ACTIVATE: 激活窗口,不要和AW_HIDE標志一起使用。    
    AW_BLEND:  實現淡出效果。只有當hWnd為頂層窗口的時候才可以使用此標志。    
    AW_HIDE:  隱藏窗口,缺省則顯示窗口。    
    AW_CENTER:  若使用了AW_HIDE標志,則使窗口向內重疊,即收縮窗口;若未使用AW_HIDE標志,則使窗口向外擴展,即展開窗口。    
    AW_HOR_POSITIVE: 自左向右顯示窗口。該標志可以在滾動動畫和滑動動畫中使用。當使用AW_CENTER或者AW_BLEND標志時,該標志將被忽略。    
    AW_VER_POSITIVE: 自頂向下顯示窗口。該標志可以在滾動動畫和滑動動畫中使用。當使用AW_CENTER或者AW_BLEND標志時,該標志將被忽略。    
    AW_VER_NEGATIVE: 自下向上顯示窗口。該標志可以在滾動動畫和滑動動畫中使用。當使用AW_CENTER或者AW_BLEND標志時,該標志將被忽略。   

返回值:
如果函數成功,返回值為非零;如果函數失敗,返回值為零。在下列情況下函數將失敗:
1、如果窗口使用窗口區域,但是XP下不會失敗;
2、窗口已經顯示了,你還想通過這個API來顯示窗口;
3、窗口已經消失了,你試圖通過這個API來隱藏窗口;
4、沒有為滾動或者滑動指定方向;
5、對一個子窗口使用AW_BLEND;
6、調用這個API的線程並不擁有hwnd指定的窗口;

函數信息:
最小DLL版本: user32.dll 
頭文件: Declared in Winuser.h, include Windows.h 
引入的庫: User32.lib 
最小操作系統: Windows 98, Windows 2000

注意:使用AnimateWindow來進行淡出時,此時窗口收不到鼠標消息了,如果你有需求:在窗口淡出即將消失時,如果鼠標移上去,窗口恢復正常顯示,並且不消失。使用AnimateWindow是沒辦法實現的,那是否有其它的方法呢?下次再談,o(∩_∩)o...。

[END]

 

http://blog.csdn.net/magictong/article/details/4074394


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM