標籤:注意 gic bool log windows 方向 擴充 原型 多個
如果是在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
使用AnimateWindow來實現視窗淡入淡出(主要有四種動畫,滾動,滑動,摺疊或展開,和淡入淡出)