【C#】調用API函數給Winform表單添加動態特效)

來源:互聯網
上載者:User

想讓你的Winform表單美化得更炫、更美麗,光是有漂亮的C#皮膚、背景貼圖等這些靜態部分是遠遠不夠的,還需要有一些動態部分的加持才能讓你的程式介面有更好的使用者體驗。

這裡要介紹的是調用user32.dll中的API函數來給Winform介面添加動態特效。user32.dll是Windows使用者介面相關應用程式介面,用於包括Windows處理,基本使用者介面等特性,如建立視窗和發送訊息。與C++一樣,在C#中同樣可以利用user32裡面的一些API函數來開發WINFORM程式。

1.匯入user32.dll並聲明API函數AnimateWindow

//匯入user32.dll
[System.Runtime.InteropServices.DllImport("user32")]
//聲明API函數
private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags); 

AnimateWindow函數裡面的3個傳參的說明如下:

hwnd        介面上控制項的控制代碼

dwTime    表單特效執行的期間(1=1毫秒、1000=1秒)

dwFlags   表單特效的值

 2.dwFlags要傳的參數是一些INT類型的常量,這些常量定義了該特效具體有哪些動作。

        //正面_水平方向
        const int AW_HOR_POSITIVE = 0x0001;
        //負面_水平方向
        const int AW_HOR_NEGATIVE = 0x0002;
        //正面_垂直方向
        const int AW_VER_POSITIVE = 0x0004;
        //負面_垂直方向
        const int AW_VER_NEGATIVE = 0x0008;
        //由中間四周展開或由四周向中間縮小
        const int AW_CENTER = 0x0010;
        //隱藏對象
        const int AW_HIDE = 0x10000;
        //顯示對象
        const int AW_ACTIVATE = 0x20000;
        //拉幕滑動效果
        const int AW_SLIDE = 0x40000;
        //淡入淡出漸層效果
        const int AW_BLEND = 0x80000; 

當然編寫代碼的時候可以將這些INT值全部放含在一個枚舉類中,這樣在程式裡引用起來會更方便

 3.在程式事件中調用AnimateWindow方法,執行表單特效。

//動畫——表單由四周向中心縮小直至消失
//AW_CENTER | AW_HIDE | AW_HOR_NEGATIVE表示三種特效狀態的集合,以“|”間隔,這和C++上調用API函數差不多
//this.Handle為主表單的控制代碼,用其他控制項的控制代碼亦可
AnimateWindow(this.Handle, 1000, AW_CENTER | AW_HIDE | AW_HOR_NEGATIVE);

 4.這裡給個為Winform表單添加動態特效的程式例子:Sample

 5.除此之外,關於user32.dll中其他API函數的調用這裡有篇文章介紹得蠻詳細的:Windows API User32.dll詳細介紹

轉自http://www.cnblogs.com/youuuu/archive/2011/06/22/2086768.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.