欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#調(diào)用Windows的API實(shí)現(xiàn)窗體動(dòng)畫(huà)

 更新時(shí)間:2022年11月09日 09:40:04   作者:dawn  
在VF、VB、PB的應(yīng)用中,有些無(wú)法通過(guò)語(yǔ)言工具本身來(lái)完成的或者做得不理想的功能,我們會(huì)考慮通過(guò)Windows的API來(lái)完成。本文就來(lái)通過(guò)調(diào)用Windows的API實(shí)現(xiàn)窗體動(dòng)畫(huà),感興趣的可以嘗試一下

在VF、VB、PB的應(yīng)用中,有些無(wú)法通過(guò)語(yǔ)言工具本身來(lái)完成的或者做得不理想的功能,我們會(huì)考慮通過(guò)Windows的API來(lái)完成。

在那個(gè)年代,熟悉API是一個(gè)編程者的基本功。那個(gè)時(shí)候網(wǎng)絡(luò)信息也不發(fā)達(dá),很多資料只能考購(gòu)買書(shū)籍或者自己摸索來(lái)獲取,每次掌握一個(gè)新的API應(yīng)用內(nèi)心里都有點(diǎn)小激動(dòng)。

Powerbuilder數(shù)據(jù)功能強(qiáng)大,但是界面功能尤其是動(dòng)畫(huà)功能比較弱,通過(guò)調(diào)用Windows的API實(shí)現(xiàn)窗體動(dòng)畫(huà)比較容易。

聲明API調(diào)用:

function boolean AnimateWindow ( long hwnd, long dwtime, long dwflags ) library "user32" 

聲明常量:

constant long  AW_HOR_POSITIVE      = 1 
constant long AW_HOR_NEGATIVE =  2 
constant long AW_VER_POSITIVE =  4 
constant long AW_VER_NEGATIVE = 8 
constant long AW_CENTER = 16 
constant long AW_HIDE =   65526 
constant long AW_ACTIVATE   =  131072 
conDAT* ? ?stant long AW_SLIDE = 262144 
constant long AW_BLEND = 524288 

在窗體的open事件中調(diào)用:

long ll_handle  
ll_handle = Handle ( This ) 
Randomize ( 0 ) 
Choose Case rand ( 6 ) 
    Case 1 
        AnimateWindow ( ll_handle, 1000, AW_SLIDE +  AW_VER_POSITIVE + AW_ACTIVATE ) 
    Case 2 
        AnimateWindow ( ll_handle, 1000, AW_SLIDE +  AW_VER_NEGATIVE+ AW_ACTIVATE ) 
    Case 3 
        AnimateWindow ( ll_handle, 1000, AW_SLIDE +  AW_HOR_POSITIVE +  AW_ACTIVATE ) 
    Case 4 
        AnimateWindow ( ll_handle, 1000, AW_SLIDE +  AW_HOR_NEGATIVE +  AW_ACTIVATE ) 
    Case 6,5 
        AnimateWindow ( ll_handle, 1000, AW_SLIDE +  AW_CENTER + AW_ACTIVATE  ) 
End Choose 

在C#中調(diào)用Windows的API來(lái)實(shí)現(xiàn)動(dòng)畫(huà)也一樣容易。

引用:

using System.Runtime.InteropServices;

定義常量:

        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_ACTIVATE = 0x00020000;
        public const Int32 AW_SLIDE = 0x00040000;
        public const Int32 AW_BLEND = 0x00080000;

定義調(diào)用:

        [DllImportAttribute("user32.dll")]
        private static extern bool AnimateWindow(IntPtr hwnd,int dwTime,int dwFlags);

調(diào)用:

        private void Form1_Load(object sender, EventArgs e)
        {
            //this.FormBorderStyle =0 ;
            Random rand = new Random();
            long LL = rand.Next(1,6);
            label1.Text = "動(dòng)畫(huà)演示:"+LL.ToString();
            switch (LL)
            {
                case 1:
                    AnimateWindow(this.Handle, 1000, AW_SLIDE + AW_VER_POSITIVE + AW_ACTIVATE);
                    break;
                case 2:
                    AnimateWindow(this.Handle, 1000, AW_SLIDE + AW_VER_NEGATIVE + AW_ACTIVATE);
                    break;
                case 3:
                    AnimateWindow(this.Handle, 1000, AW_SLIDE + AW_HOR_POSITIVE + AW_ACTIVATE);
                    break;
                case 4:
                    AnimateWindow(this.Handle, 1000, AW_SLIDE + AW_HOR_NEGATIVE + AW_ACTIVATE);
                    break;
                case 5:
                    AnimateWindow(this.Handle, 1000, AW_SLIDE + AW_CENTER + AW_ACTIVATE);
                    break;
                case 6:
                    AnimateWindow(this.Handle, 1000, AW_SLIDE + AW_CENTER + AW_ACTIVATE);
                    break;
            }
        }

效果圖

到此這篇關(guān)于C#調(diào)用Windows的API實(shí)現(xiàn)窗體動(dòng)畫(huà)的文章就介紹到這了,更多相關(guān)C# API實(shí)現(xiàn)窗體動(dòng)畫(huà)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論