|
屏幕保護(hù)程序可以保護(hù)顯示屏不被損壞,同時(shí)節(jié)約能源。作為屏幕保護(hù)程序,應(yīng)該具有如下特性:
1)屏幕保護(hù)程序運(yùn)行時(shí),鼠標(biāo)光標(biāo)被自動隱藏,在程序結(jié)束時(shí),光標(biāo)顯示。2)當(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)在Visual Basic應(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)自動隱藏。
3、檢測鼠標(biāo)移動VB中有一個(gè)檢測鼠標(biāo)移動的對象事件MouseMove事件。MouseMove事件通常在應(yīng)用程序啟動時(shí)就會觸發(fā),有時(shí)在鼠標(biāo)并未移動的情況下,MouseMove事件仍有可能被觸發(fā)。因此如果在程序中直接用MouseMove事件檢測鼠標(biāo)是否發(fā)生了移動,并不能正確反映鼠標(biāo)的移動狀況。應(yīng)該在MouseMove事件中編寫代碼加以控制。
為了正確反映鼠標(biāo)的移動,先用變量記錄下程序運(yùn)行時(shí)的鼠標(biāo)當(dāng)前位置,然后用另外一組變量記錄鼠標(biāo)移動后的位置,當(dāng)鼠標(biāo)移動前后的位置差大于一定范圍時(shí),觸發(fā)MouseMove事件。編寫代碼如下:
Private Sub Form-MouseMove(Button As Integer,shift As Inteqer,X As Single,Y As Single)
Static currentX,currentY As Single
Dim orignX,orignY As Single
’把當(dāng)前的鼠標(biāo)值賦給orignX和orignY
orignX=X
orignY=Y
’初始化currentX和currentY
if currentX=0 and currentY=0 Then
currentX=orignX
currentY=orignY
Exit Sub
Endif
’當(dāng)鼠標(biāo)移動大于一個(gè)象素時(shí),顯示鼠標(biāo)光標(biāo)并退出程序
If Abs(oriqnX-currentX)>1 or Abs(orignY-currentY)>1Then
X=ShowCursor(True)
End
Endif
EndSub
4、檢測鼠標(biāo)單擊在Visual Basic中,單擊事件是由“Click”觸發(fā)的。當(dāng)屏幕保護(hù)程序運(yùn)行時(shí)遇到單擊事件,則程序運(yùn)行終止。代碼編輯如下:
Private Sub Form-Click()
X=ShowCursor(True)
End
EndSub
注意在結(jié)束之前先設(shè)光標(biāo)的顯示為真,以免在程序結(jié)束后丟失光標(biāo)。中國教程在線,http://www.
|
|
|