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...