使用VB6 0設計螢幕保護程式

2022-03-27 22:33:11 字數 3872 閱讀 7594

1)螢幕保護程式執行時,滑鼠游標被自動隱藏,在程式結束時,游標顯示。2)當單擊、移動滑鼠或按下鍵盤時,螢幕保護結束,回到正常操作狀態。為了實現這些特性,在編寫vb應用程式時,可以採用如下方法:

1、改變窗體屬性通常vb應用程式的窗體都採用有邊框的窗體外觀,但作為螢幕保護程式,應設定窗體為無邊框,且為最大化。

2、隱藏及顯示滑鼠游標在visual basic應用程式中隱藏及顯示滑鼠游標需要運用windows的api函式,該函式名為showcursor。當用引數值true呼叫時顯示滑鼠游標,當用引數值false呼叫時,滑鼠游標自動隱藏。

3、檢測滑鼠移動vb中有乙個檢測滑鼠移動的物件事件mousemove事件。mousemove事件通常在應用程式啟動時就會觸發,有時在滑鼠並未移動的情況下,mousemove事件仍有可能被觸發。因此如果在程式中直接用mousemove事件檢測滑鼠是否發生了移動,並不能正確反映滑鼠的移動狀況。應該在mousemove事件中編寫**加以控制。

為了正確反映滑鼠的移動,先用變數記錄下程式執行時的滑鼠當前位置,然後用另外一組變數記錄滑鼠移動後的位置,當滑鼠移動前後的位置差大於一定範圍時,觸發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

』把當前的滑鼠值賦給orignx和origny

orignx=x

origny=y

』初始化currentx和currenty

if currentx=0 and currenty=0 then  

currentx=orignx  

currenty=origny 

exit sub

endif

』當滑鼠移動大於乙個象素時,顯示滑鼠游標並退出程式

if abs(oriqnx-currentx)>1 or abs(origny-currenty)>1then 

x=showcursor(true) 

endendif

endsub

private sub form-click()

x=showcursor(true)

endendsub

注意在結束之前先設游標的顯示為真,以免在程式結束後丟失游標。

5、檢測鍵盤上各按鍵的狀態visual basic中的鍵盤活動由keydown觸發。**與單擊事件的**一樣。

private sub form-keydown(keycode as integer,shift as integer)

x=showcursor(true)

endendsub

下面我們將設計乙個簡單的螢幕保護程式,該程式執行時,從左至右顯示一張,從螢幕左邊出現,至螢幕右面消失,象拉幕一樣,且重不停復該過程。假設檔名為pic.bmp,並存放在windows資料夾中。實際操作如下:

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函式。

private declare function showcursor lib「user32」(by val bshow as long) as long

』在窗體上單擊滑鼠時退出程式

private sub form-click() 

x=showcursor(true) 

end 

endsub

』在窗體上按下按鍵時退出程式

private sub form-keydown(keycode as integer,shift as integer)

x=showcursor(true) 

endendsub

』載入窗體時隱藏滑鼠

private sub form-load() 

dim x as long 

x=showcursor(false) 

picture1.visible=false 

picture1.picture=loadpicture(「c:\windows\pic.bmp」) 

picture1.left=-picture1.width

endsub

』在窗體上移動滑鼠時退出程式

private sub form-mousemove(button as integer,shift as integer,x as single,y as single)

static currentx,currenty as single

dim orignx,origny as single

』把當前的滑鼠值賦給orignx和origny

orignx=x

origny=y

』初始化currentx和currenty

if currentx=0 and currenty=0 then  

currentx=orignx  

currenty=origny  

exitsub  

endif

if abs(orignx-currentx)>1 or abs(origny-currenty)>1

then x=showcursor(true)

end   

endif

endsub

private sub picture1-click() 

x=showcursor(true)

endendsub

private sub picture1-keydown(keycode as integer,shift as integer)

x=showcursor(true)

endendsub

private sub picture1-mousemove(button as integer,shift as integer,x as single,y as single)

static xlast,ylast as single

dim xnow,ynow as single

xnow=x

ynow=y

if xlast=0 and ylast=0 then

xlast=xnow

ylast=ynow

exitsub

endif

if abs(xnow-xlast)>1 or abs(ynow-ylast)>1 then

x=showcursor(true)

endendif

endsub

private sub timer1-timer()

picture1.visible=true

picture1.top=(form1.height-picture1.height)/2

picture1.left=picture1.left+50

if picture1.left>form1.width then

picture1.left=-picture1.width

endif

endsub

將以上**編譯生成可執行檔案,在儲存檔案對話窗中輸入檔名稱時把副檔名改為」scr」,最後將生成的螢幕保護程式新增到windows的系統下即可。

VB6 0函式集合

一 型別轉換類函式 1.ctype x 格式 p cbool x 將x轉換為 布林 boolean 型別 p cbyte x 將x轉換為 位元組 byte 型別 p ccur x 將x轉換為 金額 currency 型別 p cdate x 將x轉換為 日期 date 型別 p cdbl x 將x轉...

VB6 0 程式設計入門

識別符號 使用者在程式設計時定義的名稱。關鍵字 vb中擁有固定含義 不能被重新定義的識別符號。常見關鍵字 as 定義乙個變數 date 日期函式 else 條件語句中的 否則 error 錯誤物件 let 屬性定義的關鍵字 me 當前物件 null 表示變數不包含有效資料 nothing 將物件變數...

用VB6 0設計簡易賽車遊戲

簡單的遊戲往往更耐玩,就比如伴我度過高考的賽車遊戲 一切都是方塊,所謂的賽車也只是四個方塊。第一步,繪製物件 用函式drawcar 畫賽車,drawway n 畫跑道的第n層。第二步,接受控制 form的keypreview屬性要設為true,在form keypress函式中通過改變全域性變數cx...