API原型:
BOOL AnimateWindow(
HWND hwnd,
DWORD dwTime,
DWORD dwFlags
);
hWnd:指定產生動畫窗口的句柄;
dwTime:指明動畫持續的時間(以微秒計),完成一個動畫的標準時間爲200微秒;
dwFags:指定動畫類型。這個參數可以是一個或多個標誌的組合。
dwFlags:
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_VER_POSITIVE:自頂向下顯示窗口。該標誌可以在滾動動畫和滑動動畫中使用。當使用AW_CENTER標誌時,該標誌將被忽略;
AW_VER_NEGATIVE:自下向上顯示窗口。該標誌可以在滾動動畫和滑動動畫中使用。當使用AW_CENTER標誌時,該標誌將被忽略;
返回值:如果函數成功,返回值爲非零;如果函數失敗,返回值爲零。
如果:
1、窗口使用了窗口邊界;
2、窗口已經可見仍要顯示窗口;
3、窗口已經隱藏仍要隱藏窗口。
函數將失敗。
在STDAFX.H中加入
#undef WINVER
#define WINVER 0X500
否則可能會產生如下錯誤(由於Windows版本問題):
'AnimateWindow' : undeclared identifier
'AW_HIDE' : undeclared identifier
'AW_CENTER' : undeclared identifier
一個例子:
void CAboutDlg::OnClose()
{
//實現淡出效果。
AnimateWindow(GetSafeHwnd(),1000,AW_HIDE|AW_BLEND);
CDialog::OnClose();
}