亚洲AV日韩AⅤ综合手机在线观看,激情婷婷久久综合色,欧美色五月婷婷久久,久久国产精品99久久人人澡

  • <abbr id="uk6uq"><abbr id="uk6uq"></abbr></abbr>
  • <tbody id="uk6uq"></tbody>
  • 如何用C#制作氣泡屏幕保護(hù)

    時(shí)間:2024-06-24 05:14:34 ACCP培訓(xùn) 我要投稿
    • 相關(guān)推薦

    如何用C#制作氣泡屏幕保護(hù)

      氣泡屏幕保護(hù)制作要點(diǎn):1 窗口要全屏置頂 2 模擬氣泡的滾動(dòng)和粘滯效果 3 支持快捷鍵ESC退出大致就是這3個(gè)要點(diǎn)了,其他還有一些細(xì)節(jié)我們?cè)诔绦蛑懈鶕?jù)需要再看,OK,開(kāi)工!

      首先是全屏置頂,因?yàn)槭瞧聊槐Wo(hù)嘛,這個(gè)簡(jiǎn)單,在窗體的屬性設(shè)置里把FormBorderStyle設(shè)置為none表示無(wú)邊框,把ShowInTaskbar設(shè)置為false表示不在任務(wù)欄出現(xiàn),最后一個(gè)把WindowState設(shè)置為Maximized表示最大化即可,當(dāng)然可以設(shè)置TopMost為true讓窗口置頂,不過(guò)這個(gè)不是絕對(duì)的,如果有其他窗口也使用TopMost的話(huà)會(huì)讓我們失去焦點(diǎn),所以我們要注冊(cè)一個(gè)快捷鍵讓程序可以退出!

      模擬氣泡我們可以用Graphics類(lèi)中的DrawEllipse方法來(lái)畫(huà)一個(gè)圓,當(dāng)然這個(gè)圓我們可以指定不同的顏色和大小,這里重點(diǎn)講一下怎么模擬粘滯效果!

      所謂粘滯效果相信大家到知道,膠體大家都見(jiàn)過(guò)吧?就是類(lèi)似膠體那種有彈性并且可以在改變形狀后回復(fù)原型的那種效果,當(dāng)然這里要想模擬這個(gè)效果只能說(shuō)是稍微類(lèi)似,DrawEllipse方法中最后兩個(gè)參數(shù)表示圓的大小,我們可以在這里做文章,由于循環(huán)的速度很快,我們只要?jiǎng)討B(tài)改變圓的大小就可以產(chǎn)生類(lèi)似粘滯的效果,當(dāng)然這個(gè)改變大小的參數(shù)不能太大,否則就無(wú)效了!

      我們?cè)趏npaint事件中寫(xiě)入如下代碼來(lái)繪制一些圓:

      01.Random ra = new Random(); //初始化隨機(jī)數(shù)

      02. bmp = new Bitmap(ClientSize.Width,ClientSize.Height, e.Graphics);

      03. Graphics bmpGraphics = Graphics.FromImage(bmp);

      04. // 繪制圓形

      05. for (int i=1;i<=13;i++)//這里繪制13個(gè)圓形

      06. {

      07. bmpGraphics.DrawEllipse(new Pen(Color.FromName(colours[i]),2),//根據(jù)事先定義好的顏色繪制不同顏色的圓

      08. ballarray[i, 1], ballarray[i, 2], 70+ra.Next(1, 10), 70+ra.Next(1, 10));

      09. //注意上面的最后兩個(gè)參數(shù)利用隨機(jī)數(shù)產(chǎn)生粘滯效果

      10. }

      11. e.Graphics.DrawImageUnscaled(bmp, 0, 0);

      12. bmpGraphics.Dispose();

      13. bmp.Dispose();//這里是非托管的垃圾回收機(jī)制,避免產(chǎn)生內(nèi)存溢出

      這樣,通過(guò)以上代碼就可以繪制出一些不同顏色的具有粘滯效果的圓來(lái)模擬氣泡

      下面是注冊(cè)系統(tǒng)熱鍵,有個(gè)API函數(shù)RegisterHotKey可以完成系統(tǒng)快捷鍵的注冊(cè),使用他之前我們要先引用一個(gè)系統(tǒng)的DLL文件:USER32.DLL,然后對(duì)這個(gè)RegisterHotKey函數(shù)進(jìn)行一下聲明:

      1.[DllImport("user32.dll")]//引用USER32.DLL

      2.public static extern UInt32 RegisterHotKey(IntPtr hWnd, UInt32 id, UInt32 fsModifiers, UInt32 vk); //聲明函數(shù)原型

      由于引用了一個(gè)DLL文件,我們不要忘了在文件頭加入DLLImport的類(lèi)聲明using System.Runtime.InteropServices;然后在Form1的構(gòu)造函數(shù)中來(lái)注冊(cè)一個(gè)系統(tǒng)熱鍵,這里我們注冊(cè)ESC:RegisterHotKey(this.Handle, 247696411, 0, (UInt32)Keys.Escape); 通過(guò)以上步驟,我們就可以注冊(cè)一個(gè)或多個(gè)系統(tǒng)熱鍵,但是,注冊(cè)系統(tǒng)熱鍵后我們還不能立即使用,因?yàn)槲覀冊(cè)诔绦蛑羞無(wú)法對(duì)這個(gè)消息進(jìn)行響應(yīng),我們重載一下默認(rèn)的WndProc過(guò)程來(lái)響應(yīng)我們的熱鍵消息:

      01.protected override void WndProc(ref Message m)//注意是保護(hù)類(lèi)型的過(guò)程

      02. {

      03. const int WM_HOTKEY = 0x0312;

      04. }

      05. if (m.Msg == WM_HOTKEY & & m.WParam.ToInt32() == 247696411) //判斷熱鍵消息是不是我們?cè)O(shè)置的

      06. {

      07. Application.Exit();//如果消息等于我們的熱鍵消息,程序退出

      08. }

      09. base.WndProc(ref m);//其他消息返回做默認(rèn)處理

      好了,通過(guò)以上一些步驟,我們就基本完成了這個(gè)屏幕保護(hù)程序的要點(diǎn)設(shè)計(jì),其他的詳細(xì)過(guò)程可以參考源碼,程序運(yùn)行的時(shí)候背景是透明的,這個(gè)也不難實(shí)現(xiàn)

      1.this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));

      2.this.TransparencyKey = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));

      TransparencyKey可以讓窗體的某個(gè)顏色透明顯示,我們只要把窗體的顏色和TransparencyKey的顏色設(shè)置一致就可以了,這里我設(shè)置的是粉紅,注意最好設(shè)置的顏色是窗體所沒(méi)有的,否則一旦匹配將會(huì)以透明顯示!

    【如何用C#制作氣泡屏幕保護(hù)】相關(guān)文章:

    如何用Word制作常用公文10-31

    如何用PPT制作變形動(dòng)畫(huà)07-30

    如何用SWFText制作flash動(dòng)畫(huà)09-05

    HTML文檔設(shè)置為屏幕保護(hù)的功能10-19

    如何用Word軟件制作常用公文07-05

    如何用ImageReady制作漸隱Gif動(dòng)畫(huà)09-16

    win7怎么設(shè)置屏幕保護(hù)時(shí)間10-18

    win7系統(tǒng)屏幕保護(hù)如何設(shè)置11-03

    C# AutoResetEvent的使用10-29

    如何用Flash軟件制作書(shū)法卷軸動(dòng)畫(huà)11-03