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)
End
Endif
EndSub
4、检测鼠标单击在Visual Basic中,单击事件是由“Click”触发的。当屏幕保护程序运行时遇到单击事件,则程序运行终止。代码编辑如下:
Private Sub Form-Click()
X=ShowCursor(True)
End
EndSub
注意在结束之前先设光标的显示为真,以免在程序结束后丢失光标。
5、检测键盘上各按键的状态Visual Basic中的键盘活动由KeyDown触发。代码与单击事件的代码一样。
Private Sub Form-KeyDown(KeyCode As Integer,Shift As Integer)
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函数。
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)
End
EndSub
’加载窗体时隐藏鼠标
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)
End
EndSub
Private Sub Picture1-KeyDown(KeyCode As Integer,Shift As Integer)
X=ShowCursor(True)
End
EndSub
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
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关文章
热点关注
- 在asp.net中为Web用户控件
- .NET3.5和VS2008中的ASP.N
- 对.NET Framework 反射的
- Asp.net Ajax 1.0 异步回
- ASP.NET2.0的控件状态和视
- 通过避免下列10个常见ASP.
- 中国地区三级联动下拉菜单
- 解析Asp.net中资源本地化
- 一个无刷新效果定时自动更
- 动态创建MSSQL数据库表存
- asp.net用url重写URLReWri
- 使用ASP.NET Atlas编写显
- 关于ASP.NET调用JavaScrip
- 使用ASP.Net Forms模式实
- asp.net ajax 使用updatep
- 优化ASP.NET应用程序性能
- ASP.NET中动态修改web.con
- ASP.NET中利用Crystal Rep
- asp.net如何生成图片验证
- 基于ASP.NET的Web动态控件
- 分享个极好的无刷新二级联
- asp.net 2.0 上传控件的使
- 创建ASP.NET监视服务器进
- Asp.net把UTF-8编码转换为
- 开发基于ASP.NET WebServi
- asp.net结合html,javascr
- asp.net 2.0下嵌套masterp
- 正则表达式提取数字
- 最新版FreeTextBox(版本3.
- 获取本机上配置好的Oracle
- ASP.Net全局变量的设置和
- VB几个有用的函数
- 用代码画折线图/柱形图/
- FCKeditor2.2 ASP.NET2.0
- 客户端回调实现gridView无
IDC资讯
虚拟主机
域名注册
托管租用
vps主机
智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD




