WEB开发网
开发学院软件开发VB 利用VB6.0设计屏幕保护程序 阅读

利用VB6.0设计屏幕保护程序

 2006-02-27 21:13:54 来源:WEB开发网   
核心提示:屏幕保护程序可以保护显示屏不被损坏,同时节约能源,利用VB6.0设计屏幕保护程序,作为屏幕保护程序,应该具有如下特性:1)屏幕保护程序运行时,YAsSingle)StaticcurrentX,currentYAsSingleDimorignX,orignYAsSingle’把当前的鼠标值赋给orignX和orignYo
屏幕保护程序可以保护显示屏不被损坏,同时节约能源。作为屏幕保护程序,应该具有如下特性:

1)屏幕保护程序运行时,鼠标光标被自动隐藏,在程序结束时,光标显示。2)当单击、移动鼠标或按下键盘时,屏幕保护结束,回到正常操作状态。为了实现这些特性,在编写VB应用程序时,可以采用如下方法:

1、改变窗体属性通常VB应用程序的窗体都采用有边框的窗体外观,但作为屏幕保护程序,应设置窗体为无边框,且为最大化。

2、隐藏及显示鼠标光标在VisualBasic应用程序中隐藏及显示鼠标光标需要运用Windows的API函数,该函数名为ShowCursor。当用参数值True调用时显示鼠标光标,当用参数值False调用时,鼠标光标自动隐藏。

3、检测鼠标移动VB中有一个检测鼠标移动的对象事件MouseMove事件。MouseMove事件通常在应用程序启动时就会触发,有时在鼠标并未移动的情况下,MouseMove事件仍有可能被触发。因此如果在程序中直接用MouseMove事件检测鼠标是否发生了移动,并不能正确反映鼠标的移动状况。应该在MouseMove事件中编写代码加以控制。

为了正确反映鼠标的移动,先用变量记录下程序运行时的鼠标当前位置,然后用另外一组变量记录鼠标移动后的位置,当鼠标移动前后的位置差大于一定范围时,触发MouseMove事件。编写代码如下:

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

 StaticcurrentX,currentYAsSingle

 DimorignX,orignYAsSingle

 ’把当前的鼠标值赋给orignX和orignY

 orignX=X

 orignY=Y

 ’初始化currentX和currentY

 ifcurrentX=0andcurrentY=0Then  

  currentX=orignX  

  currentY=orignY 

  ExitSub

 Endif

 ’当鼠标移动大于一个象素时,显示鼠标光标并退出程序

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

  X=ShowCursor(True) 

  End

 Endif

EndSub

4、检测鼠标单击在VisualBasic中,单击事件是由“Click”触发的。当屏幕保护程序运行时遇到单击事件,则程序运行终止。代码编辑如下: 

PrivateSubForm-Click()

 X=ShowCursor(True)

 End

EndSub

注意在结束之前先设光标的显示为真,以免在程序结束后丢失光标。
  5、检测键盘上各按键的状态VisualBasic中的键盘活动由KeyDown触发。代码与单击事件的代码一样。

PrivateSubForm-KeyDown(KeyCodeAsInteger,ShiftAsInteger)

 X=ShowCursor(True)

 End

EndSub

下面我们将设计一个简单的屏幕保护程序,该程序运行时,从左至右显示一张图片,图片从屏幕左边出现,至屏幕右面消失,象拉幕一样,且重不停复该过程。假设图片文件名为PIC.BMP,并存放在Windows文件夹中。实际操作如下:

创建一新工程,在窗体中添加一图片框和一个Timer控件。设置它们的属性如下: 

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

PrivateDeclareFunctionShowCursorLib“user32”(ByValbShowAsLong)AsLong

 ’在窗体上单击鼠标时退出程序

 PrivateSubForm-Click() 

  X=ShowCursor(True) 

  End 

 EndSub

 ’在窗体上按下按键时退出程序

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

  End

 EndSub

 ’加载窗体时隐藏鼠标

 PrivateSubForm-Load() 

  DimXAsLong 

  X=ShowCursor(False) 

  Picture1.Visible=False 

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

  Picture1.Left=-Picture1.Width

 EndSub

 ’在窗体上移动鼠标时退出程序

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

 StaticcurrentX,currentYAsSingle

 DimorignX,orignYAsSingle

 ’把当前的鼠标值赋给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

将以上代码编译生成可执行文件,在保存文件对话窗中输入文件名称时把扩展名改为”SCR”,最后将生成的屏幕保护程序添加到Windows的系统下即可。

->

Tags:利用 VB 设计

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接