user32 AnimateWindow API 用法

來源:互聯網
上載者:User

看到別人程式中使用了此API,稍微學習一下。AnimateWindow主要是實現視窗動畫功能。 直接看代碼。

using System.Runtime.InteropServices;

namespace User32AnimateWindowAPI
{
    public partial class Form1 : Form
    {
        /// <summary>
        /// 視窗產生動畫效果方法。
        /// </summary>
        /// <param name="whnd">產生動畫的視窗的控制代碼</param>
        /// <param name="dwtime">動畫持續的時間(以微秒計),完成一個動畫的標準時間為200微秒。</param>
        /// <param name="dwflag">動畫類型</param>
        /// <returns></returns>
        [DllImport("user32")]
        private static extern bool AnimateWindow(IntPtr whnd, int dwtime, int dwflag);

        #region 動畫類型
        //從左至右
        public const Int32 AW_HOR_POSITIVE = 0x00000001;
        //從右至左
        public const Int32 AW_HOR_NEGATIVE = 0x00000002;
        //從上到下
        public const Int32 AW_VER_POSITIVE = 0x00000004;
        //從下到上
        public const Int32 AW_VER_NEGATIVE = 0x00000008;
        //從中間到四周
        public const Int32 AW_CENTER = 0x00000010;
        //隱藏視窗
        public const Int32 AW_HIDE = 0x00010000;
        //淡入淡出效果
        public const Int32 AW_BLEND = 0x00080000;
        //示視窗
        public const Int32 AW_ACTIVATE = 0x00020000;
        #endregion
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //調用
            AnimateWindow(this.Handle, 3000, AW_CENTER | AW_ACTIVATE);
        }
    }
}

 

AnimateWindow函數說明:

 

  函數功能:該函數能在顯示與隱藏視窗時能產生特殊的效果。有兩種類型的動畫效果:滾動動畫和滑動動畫。  
  函數原型:BOOL   AnimateWindow(HWND   hWnd,DWORD   dwTime,DWORD   dwFlags);  
  參數:  
        hWnd:指定產生動畫的視窗的控制代碼。  
        dwTime:指明動畫持續的時間(以微秒計),完成一個動畫的標準時間為200微秒。  
        dwFags:指定動畫類型。這個參數可以是一個或多個下列標誌的組合。標誌描述:  
  AW_SLIDE:使用滑動類型。預設則為滾動動畫類型。當使用AW_CENTER標誌時,這個標誌就被忽略 
  AW_ACTIVE:啟用視窗。在使用了AW_HIDE標誌後不要使用這個標誌。  
  AW_BLEND:使用淡出效果。只有當hWnd為頂層視窗的時候才可以使用此標誌。  
  AW_HIDE:隱藏視窗,預設則顯示視窗。  
  AW_CENTER:若使用了AW_HIDE標誌,則使視窗向內重疊;若未使用AW_HIDE標誌,則使視窗向外擴充。  
  AW_HOR_POSITIVE:自左向右顯示視窗。該標誌可以在滾動動畫和滑動動畫中使用。當使用AW_CENTER標誌時,該標誌將被忽略。  
  AW_HOR_NEGATIVE:自右向左顯示視窗。該標誌可以在滾動動畫和滑動動畫中使用。當使用AW_CENTER標誌時,該標誌將被忽略。  

  AW_VER_POSITIVE:自頂向下顯示視窗。該標誌可以在滾動動畫和滑動動畫中使用。當使用AW_CENTER標誌時,該標誌將被忽略。  
  AW_VER_NEGATIVE:自下向上顯示視窗。該標誌可以在滾動動畫和滑動動畫中使用。當使用AW_CENTER標誌時,該標誌將被忽略。  
  傳回值:如果函數成功,傳回值為非零;如果函數失敗,傳回值為零。在下列情況下函數將失敗:  
  視窗使用了視窗邊界;視窗已經可見仍要顯示視窗;視窗已經隱藏仍要隱藏視窗。若想獲得更多錯誤資訊,請調用GetLastError函數。  
  備忘:1) 可以將AW_HOR_POSITIVE或AW_HOR_NEGTVE與AW_VER_POSITVE或AW_VER_NEGATIVE組合來啟用一個視窗。  

           2) 可能需要在該視窗的視窗過程和它的子視窗的視窗過程中處理WM_PRINT或WM_PRINTCLIENT訊息。對話方塊,控制,及共用控制已處理WM_PRINTCLIENT訊息,預設視窗過程也已處理WM_PRINT訊息。

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.