成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解C#制作屏幕保護(hù)

開發(fā) 后端
本文介紹C#制作屏幕保護(hù),打開Visual Studio.net2005建立一個(gè)windows項(xiàng)目。這次的屏保是模仿Windows XP自帶的一個(gè)屏幕保護(hù)。

初學(xué)C#的時(shí)候就曾想過C#制作屏幕保護(hù),當(dāng)時(shí)覺得很深?yuàn)W,摸不著頭緒,就放棄了。今日又重新拾起,突然覺得也就是那么一回事,知道了就很簡(jiǎn)單了。好的,下面就介紹一下如何利用C#制作屏幕保護(hù)。

打開Visual Studio.net2005(其他版本也差不多),建立一個(gè)windows項(xiàng)目。這次的屏保是模仿Windows XP自帶的一個(gè)屏幕保護(hù)。

 

Windows XP自帶屏幕保護(hù)

    
    

    把窗口的屬性設(shè)置一下:
    1.首先把 WindowState 設(shè)置為 FormWindowState.Maximized 這樣窗口就可以在打開之后呈現(xiàn)***化的狀態(tài)。
    2.把TopMost 設(shè)置為true,這樣使得窗口處于最頂層,就是所謂的“永遠(yuǎn)在前”,相信用過千千靜聽,金山詞霸等軟件的朋友應(yīng)該熟悉。
    3.把FormBorderStyle 設(shè)置為FormBorderStyle.None ,這樣窗口就沒有邊框,即沒有了標(biāo)題欄,周圍的一圈邊框。也就省去了一個(gè)個(gè)去掉MaximizeBox ,MinimizeBox了。
    4.把BackColor設(shè)置為Color.Black, 這樣窗口背景色就變成黑色了
    5.ShowInTaskBar 設(shè)置為false,(這個(gè)步驟可以省去,本身***化就看不到任務(wù)欄了)
    其他的屬性修改都是多余了,當(dāng)然把name等等類似改改也行,總之,上面5個(gè)(嚴(yán)格的說4個(gè))弄好了,UI方面就設(shè)計(jì)完畢了。

    下面拖動(dòng)一個(gè)timer控件進(jìn)來,將其Enabled屬性設(shè)置為true,Interval設(shè)置為10000(因?yàn)橐詍illiseconds為單位,所以這里設(shè)置為10,000,也就是10s)。
    加timer控件是為了每隔一定的事件觸發(fā)一個(gè)事件。因此給timer加一個(gè)事件,點(diǎn)擊Solution Explorer 上面的閃電圖標(biāo),添加唯一的一個(gè)Tick事件。
    下面就開始設(shè)計(jì)算法了,其實(shí)也是再簡(jiǎn)單不過了,隨機(jī)產(chǎn)生一個(gè)點(diǎn),然后再該處繪制預(yù)先準(zhǔn)備好的圖片。(如果為了好看點(diǎn),可以設(shè)置坐標(biāo)之間的關(guān)系)

    1. privatereadonlyintscreenWidth;  
    2. privatereadonlyintscreenHeight;  
    3. privateBitmapbitmap=newBitmap("ms.bmp");  
    4. privateRandomrandom=newRandom();  
    5. privateintx=0;  
    6. privateinty=0

    增加若干成員變量, 挺有self-documenting的味道,我就不過多解釋了,前兩個(gè)是標(biāo)志屏幕的寬度和高度,
    然后是一個(gè)位圖對(duì)象,存儲(chǔ)預(yù)先準(zhǔn)備的圖片,這里是一張bitmap。random是一個(gè)隨機(jī)類對(duì)象,用來產(chǎn)生隨機(jī)點(diǎn)的。再下面分別是產(chǎn)生的隨機(jī)點(diǎn)的x,y坐標(biāo)。

    構(gòu)造函數(shù)內(nèi)添加

    1. Rectangle rect = Screen.PrimaryScreen.Bounds;  
    2. screenWidth = rect.Width;  
    3. screenHeight = rect.Height; 

    ***句話是用來獲得整個(gè)顯示器的邊界范圍。然后分別把寬度和高度賦值給成員變量。
    注:Screen類提供了一些與顯示器相關(guān)的屬性,感興趣的朋友可以參閱MSDN
    下面填補(bǔ)Tick事件

    1. privatevoidtimer1_Tick(objectsender,EventArgse)  
    2. {  
    3. x=random.Next(screenWidth);  
    4. y=random.Next(screenHeight);  
    5. if(x+bitmap.Width>screenWidth)  
    6. {  
    7. x=screenWidth-bitmap.Width;  
    8. }  
    9. if(y+bitmap.Height>screenHeight)  
    10. {  
    11. y=screenHeight-bitmap.Height;  
    12. }  
    13. this.Invalidate();  
    14. }  

    上面是獲取一個(gè)x,y坐標(biāo)分別不大于顯示器的寬度和高度的點(diǎn)。為了美觀一點(diǎn),判斷圖片是否超過屏幕邊界,對(duì)x,y進(jìn)行了一些處理, 不是很難,相信大家都能看懂。***刷新屏幕,調(diào)用paint事件。
    我想您一定知道了,對(duì), 在Form的paint事件里面有了一句畫圖的語句,回答正確!

    1. e.Graphics.DrawImage(bitmap, x, y, bitmap.Width,bitmap.Height); 

    Image 對(duì)象存儲(chǔ)像素寬度值及水平分辨率值(每英寸點(diǎn)數(shù))。圖像的物理寬度(以英寸為單位)等于像素寬度除以水平分辨率。例如,像素寬度為 216、水平分辨率為 72 點(diǎn)/英寸的圖像的物理寬度為 3 英寸。此說明同樣適用于像素高度和物理高度。

    此方法使用圖像的物理大小繪制圖像,因此無論顯示設(shè)備的分辨率(每英寸點(diǎn)數(shù))是多少,圖像大?。ㄒ杂⒋鐬閱挝唬┒际钦_的。例如,假定圖像的像素寬度為 216,水平分辨率為 72 點(diǎn)/英寸。如果調(diào)用此方法在分辨率為 96 點(diǎn)/英寸的設(shè)備上繪制該圖像,則所呈現(xiàn)圖像的像素寬度是 (216/72)*96 = 288。

    哈哈,也就是說前者在用圖片的物理大小,后者使用指定大小。物理大小在不同的水平分辨率的顯示器上顯示的始終是圖片的真實(shí)大小。(注意,bitmap 的width和height返回的大小都是以 pixel(像素)為單位的)。疑云頓時(shí)解開了!

    ***添加一個(gè)程序退出的操作,這里我使用的是鍵盤按下或者鼠標(biāo)焦點(diǎn)變換。這個(gè)不難,略過。

    到此為止,把程序執(zhí)行一下就可以看到預(yù)期的效果了。***把bin/debug或者bin/release下的可執(zhí)行程序后綴改成scr,并拷貝到系統(tǒng)盤Windows的system32下(圖片也拷貝進(jìn)去哦!)
    這樣通過桌面屬性的屏幕保護(hù)程序設(shè)置一下就可以投入使用了,C#制作屏幕保護(hù)是不是很炫呢!趕緊試試吧!

    【編輯推薦】

    1. 分析C#不安全代碼
    2. 淺析C#調(diào)用ImageAnimator
    3. C#連接Access、SQL Server數(shù)據(jù)庫(kù)
    4. 淺談C#固定的和活動(dòng)的變量
    5. 介紹C#中的值類型
    責(zé)任編輯:佚名 來源: 百度空間
    相關(guān)推薦

    2009-08-13 17:15:44

    C#屏幕保護(hù)程序

    2009-08-14 17:09:48

    C#引用類型

    2009-09-01 16:07:04

    C#命名規(guī)約

    2009-07-30 18:20:21

    C#繼承

    2009-08-24 11:23:41

    C# TimeLabe

    2009-09-07 16:13:56

    C# MessageB

    2009-08-25 17:13:57

    C#串口編程

    2009-09-02 13:15:23

    C#數(shù)組復(fù)制

    2009-09-02 17:12:06

    C#關(guān)機(jī)代碼

    2009-09-02 09:24:03

    C# this關(guān)鍵字

    2009-09-04 14:14:55

    C#文檔

    2024-03-04 18:49:59

    反射C#開發(fā)

    2009-08-27 14:29:15

    C# explicti

    2009-09-01 10:37:51

    C#項(xiàng)目代碼C#代碼規(guī)范

    2009-08-03 13:13:52

    C#調(diào)用Outlook

    2009-08-25 18:04:30

    C#實(shí)現(xiàn)Singlet

    2009-08-20 11:01:51

    C#操作內(nèi)存

    2009-08-20 13:47:57

    C#驗(yàn)證輸入方法

    2009-08-18 10:14:19

    C#插件構(gòu)架

    2009-09-09 18:50:23

    C# 加密RSA
    點(diǎn)贊
    收藏

    51CTO技術(shù)棧公眾號(hào)

    主站蜘蛛池模板: 亚洲一区二区电影在线观看 | 亚洲男人的天堂网站 | 亚洲欧美综合精品久久成人 | 国产精品中文字幕在线播放 | 中文精品视频 | 精品国产欧美一区二区三区成人 | 看一级黄色毛片 | 在线国产一区二区 | 国产区高清 | 国产一区二区三区色淫影院 | 久久成人久久 | 久久久久久综合 | 女人牲交视频一级毛片 | 免费观看av网站 | 国产欧美一区二区三区在线看蜜臀 | av影音在线 | 国产无套一区二区三区久久 | 韩国理论电影在线 | 亚洲人成人一区二区在线观看 | 亚洲一区在线日韩在线深爱 | 另类二区| 成人日韩精品 | 国产蜜臀97一区二区三区 | avmans最新导航地址 | а√中文在线8 | 羞羞的视频免费在线观看 | 99热视 | 一区在线视频 | 日本黄色的视频 | 91精品国产乱码久久久久久久久 | 国产四虎 | 欧美日韩精选 | 成年人国产在线观看 | 在线视频久久 | 国产精品99视频 | 国产视频一区在线 | 欧美自拍一区 | 波多野结衣先锋影音 | 国产精品二区三区 | 久草在线视频中文 | 精品免费国产一区二区三区 |