如果是在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