用AnimateWindow函數實現窗口動畫效果

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(); 
    } 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章