国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

利用VB6.0設(shè)計(jì)屏幕保護(hù)程序

2019-11-18 17:28:49
字體:
供稿:網(wǎng)友
屏幕保護(hù)程序可以保護(hù)顯示屏不被損壞,同時(shí)節(jié)約能源。作為屏幕保護(hù)程序,應(yīng)該具有如下特性:

  1)屏幕保護(hù)程序運(yùn)行時(shí),鼠標(biāo)光標(biāo)被自動(dòng)隱藏,在程序結(jié)束時(shí),光標(biāo)顯示。2)當(dāng)單擊、移動(dòng)鼠標(biāo)或按下鍵盤時(shí),屏幕保護(hù)結(jié)束,回到正常操作狀態(tài)。為了實(shí)現(xiàn)這些特性,在編寫VB應(yīng)用程序時(shí),可以采用如下方法:

  1、改變窗體屬性通常VB應(yīng)用程序的窗體都采用有邊框的窗體外觀,但作為屏幕保護(hù)程序,應(yīng)設(shè)置窗體為無邊框,且為最大化。

  2、隱藏及顯示鼠標(biāo)光標(biāo)在VisualBasic應(yīng)用程序中隱藏及顯示鼠標(biāo)光標(biāo)需要運(yùn)用Windows的API函數(shù),該函數(shù)名為ShowCursor。當(dāng)用參數(shù)值True調(diào)用時(shí)顯示鼠標(biāo)光標(biāo),當(dāng)用參數(shù)值False調(diào)用時(shí),鼠標(biāo)光標(biāo)自動(dòng)隱藏。

  3、檢測(cè)鼠標(biāo)移動(dòng)VB中有一個(gè)檢測(cè)鼠標(biāo)移動(dòng)的對(duì)象事件MouseMove事件。MouseMove事件通常在應(yīng)用程序啟動(dòng)時(shí)就會(huì)觸發(fā),有時(shí)在鼠標(biāo)并未移動(dòng)的情況下,MouseMove事件仍有可能被觸發(fā)。因此如果在程序中直接用MouseMove事件檢測(cè)鼠標(biāo)是否發(fā)生了移動(dòng),并不能正確反映鼠標(biāo)的移動(dòng)狀況。應(yīng)該在MouseMove事件中編寫代碼加以控制。

  為了正確反映鼠標(biāo)的移動(dòng),先用變量記錄下程序運(yùn)行時(shí)的鼠標(biāo)當(dāng)前位置,然后用另外一組變量記錄鼠標(biāo)移動(dòng)后的位置,當(dāng)鼠標(biāo)移動(dòng)前后的位置差大于一定范圍時(shí),觸發(fā)MouseMove事件。編寫代碼如下:

  PRivateSubForm-MouseMove(ButtonAsInteger,shiftAsInteqer,XAsSingle,YAsSingle)

   StaticcurrentX,currentYAsSingle

   DimorignX,orignYAsSingle

   ’把當(dāng)前的鼠標(biāo)值賦給orignX和orignY

   orignX=X

   orignY=Y

   ’初始化currentX和currentY

   ifcurrentX=0andcurrentY=0Then  

    currentX=orignX  

    currentY=orignY 

    ExitSub

   Endif

   ’當(dāng)鼠標(biāo)移動(dòng)大于一個(gè)象素時(shí),顯示鼠標(biāo)光標(biāo)并退出程序

   If Abs(oriqnX-currentX)>1orAbs(orignY-currentY)>1Then 

    X=ShowCursor(True) 

    End

   Endif

  EndSub

  4、檢測(cè)鼠標(biāo)單擊在VisualBasic中,單擊事件是由“Click”觸發(fā)的。當(dāng)屏幕保護(hù)程序運(yùn)行時(shí)遇到單擊事件,則程序運(yùn)行終止。代碼編輯如下: 

  PrivateSubForm-Click()

   X=ShowCursor(True)

   End

  EndSub

  注意在結(jié)束之前先設(shè)光標(biāo)的顯示為真,以免在程序結(jié)束后丟失光標(biāo)。
  5、檢測(cè)鍵盤上各按鍵的狀態(tài)VisualBasic中的鍵盤活動(dòng)由KeyDown觸發(fā)。代碼與單擊事件的代碼一樣。

  PrivateSubForm-KeyDown(KeyCodeAsInteger,ShiftAsInteger)

   X=ShowCursor(True)

   End

  EndSub

  下面我們將設(shè)計(jì)一個(gè)簡(jiǎn)單的屏幕保護(hù)程序,該程序運(yùn)行時(shí),從左至右顯示一張圖片,圖片從屏幕左邊出現(xiàn),至屏幕右面消失,象拉幕一樣,且重不停復(fù)該過程。假設(shè)圖片文件名為PIC.BMP,并存放在Windows文件夾中。實(shí)際操作如下:

  創(chuàng)建一新工程,在窗體中添加一圖片框和一個(gè)Timer控件。設(shè)置它們的屬性如下: 

  Form   

  BackColor=&H80000007& 

  BorderStyle=0  ’None

  MaxButton=False 

  MinButton=False  

  Windowstate=2 ’Maximized

  Timer   

  Intelval=5

  PictureBox 

  BackColor=&H80000007&  

  BorderStyle=0 ’None  

  AutoSize=Ture

  輸入代碼如下:  

  ’在窗體的聲明部分聲明ShowCursor函數(shù)。

  PrivateDeclareFunctionShowCursorLib“user32”(ByValbShowAsLong)AsLong

   ’在窗體上單擊鼠標(biāo)時(shí)退出程序

   PrivateSubForm-Click() 

    X=ShowCursor(True) 

    End 

   EndSub

   ’在窗體上按下按鍵時(shí)退出程序

   PrivateSubForm-KeyDown(KeyCodeAsInteger,ShiftAsInteger) X=ShowCursor(True) 

    End

   EndSub

   ’加載窗體時(shí)隱藏鼠標(biāo)

   PrivateSubForm-Load() 

    DimXAsLong 

    X=ShowCursor(False) 

    Picture1.Visible=False 

    Picture1.PICTure=LoadPICTure(“C:/windows/PIC.BMP”) 

    Picture1.Left=-Picture1.Width

   EndSub

   ’在窗體上移動(dòng)鼠標(biāo)時(shí)退出程序

  PrivateSubForm-MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

   StaticcurrentX,currentYAsSingle

   DimorignX,orignYAsSingle

   ’把當(dāng)前的鼠標(biāo)值賦給orignX和orignY

   orignX=X

   orignY=Y

   ’初始化currentX和currentY

   If currentX=0AndcurrentY=0Then  

    currentX=orignX  

    currentY=orignY  

    ExitSub  

   EndIf

   IfAbs(orignX-currentX)>1OrAbs(orignY-currentY)>1

    Then X=ShowCursor(True)

    End   

   EndIf

  EndSub

  PrivateSubPicture1-Click() 

   X=ShowCursor(True)

   End

  EndSub

  PrivateSubPicture1-KeyDown(KeyCodeAsInteger,ShiftAsInteger)

   X=ShowCursor(True)

   End

  EndSub

  PrivateSubPicture1-MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

   StaticXlast,YlastAsSingle

   DimXnow,YnowAsSingle

   Xnow=X

   Ynow=Y

   IfXlast=0AndYlast=0Then

    Xlast=Xnow

    Ylast=Ynow

    ExitSub

   EndIf

   IfAbs(Xnow-Xlast)>1OrAbs(Ynow-Ylast)>1Then

    X=ShowCursor(True)

    End

   EndIf

  EndSub

  PrivateSubTimer1-Timer()

   Picture1.Visible=True

   Picture1.Top=(Form1.Height-Picture1.Height)/2

   Picture1.Left=Picture1.Left 50

   IfPicture1.Left>Form1.WidthThen

    Picture1.Left=-Picture1.Width

    EndIf

   EndSub

  將以上代碼編譯生成可執(zhí)行文件,在保存文件對(duì)話窗中輸入文件名稱時(shí)把擴(kuò)展名改為”SCR”,最后將生成的屏幕保護(hù)程序添加到Windows的系統(tǒng)下即可。

->


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 南投县| 罗城| 博客| 宕昌县| 南和县| 厦门市| 准格尔旗| 即墨市| 武宣县| 浪卡子县| 博客| 民丰县| 玉屏| 武乡县| 庆元县| 太康县| 重庆市| 宁都县| 木里| 广西| 五家渠市| 和平区| 虹口区| 淅川县| 宝兴县| 孝昌县| 文登市| 宁河县| 句容市| 漳州市| 河间市| 高安市| 克拉玛依市| 分宜县| 洪湖市| 突泉县| 广汉市| 台北县| 开平市| 应城市| 泸水县|