1 / 11
文档名称:

vb屏幕保护程序.doc

格式:doc   大小:63KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

vb屏幕保护程序.doc

上传人:mh900965 2018/5/29 文件大小:63 KB

下载得到文件列表

vb屏幕保护程序.doc

文档介绍

文档介绍:屏幕保护程序
设计思路:设计好窗体,使得窗体运行时全屏幕占有及显示在最顶层。运行时消除光标,退出时响应键盘、鼠标并显示光标。设定好定时器,,当到达次数时清除画面,并调用画圆程序。把画圆程序设置好,使其能每次随机出现圆个数,并每个圆能有许多同心圆,颜色随机生成。
屏幕保护程序需要几点:1、窗体覆盖整个屏幕 move,和保持窗口定位在屏幕的最前端SetWindowsPos。2、去除/显示光标 ShowCursor。3、画圆函数 Circle。
窗体在屏幕的最前端是
Move 0,0,,
窗口在屏幕的最前端,用windows的API函数——SetWindowsPos , API文本浏览器里查找,然后复制粘贴在“一般模块”里。
Move指令用法是确定一个方格在form中的位置,其坐标是从(0,0)开始的。
H1 * , H1 * , H1 * 7, H1 * 2
H1 * 8, H1 * , H1 * 7, H1 * 2
H1 * 16, H1 * , H1 * 7, H1 * 2
这里H1代表一个常数的话,方格就从H1 * , H1 * (原始点),然后H1 * 7(宽), H1 * 2(高)知道第二点(扩展点),然后以x、y轴方向连接这两点,就形成了扩展。
下面是设置窗口窗体位置的做法:
(1)、在“一般模块”新增代码命令
Option Explicit
'常数定义
Public Const HWND_TOPMOST = -1
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
'API 函数声明
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hwndinserafter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Setwindowpos 函数所使用的参数如表:
Hwnd
要处理的窗口
HWndInserAfter
Hwnd窗口将插放在zorder顺序的hwndinserafter 窗口之后(zorder 是指窗口叠放的顺序)
x、y
窗口坐标位
cx、cy
窗口宽度及高度
Wflags
窗口显示的标志状态。例如将设置窗口标志为SWP_NOMOVE(不可移动)及SWP_NOSIZE(不可改变大小)
注意:h 是类型描述,表示句柄, Wnd 是变量对象描述,表示窗口,所以hWnd 表示窗口句柄。通俗地说,如果把一个到处跑的人当作指针的话,那么HWND就是该人的身份证----我想应该是身份证号码
程序中调用setwindowspos 函数
Temp=setwindowpos(hwnd,HWND TOPMOST,0,0,0,0,SWP NOMOVE or SWP NOSIZE)
Setwindowpos(要处理的窗口,窗口叠放顺序,窗口坐标位,窗口宽度及高度,窗口显示的标志状态)
HWND_TOPMOST:将窗口置于所有非顶层窗口之上。即使窗口未被激活窗口也将保持顶级位置。
去除/显示光标
在屏幕保护程序打开时,必须去除光标,而且在结束屏幕保护功能之后,也必须恢复显示光标。可通过API函数——showcursor完成。
函数声明(查API文本浏览器)
Public Declare Function ShowCursor Lib "user32" Alias "ShowCursor" (ByVal bShow As Long) As Long
名称
功能
Showcursor
函数会设置一个内部计数器,当计数器大于等于零时,才显示光标
Bshow
当bshow为TRUE,则内部计数器加1,当bshow为FALSE,则内部计数器减1
备注:该函数设置了一个内部显示计数器以确定光标是否显示,仅当显示计数器的值大于或等于0时,光标才显示,如果安装了鼠标,则显示计数的初始值为0。如果没有安装鼠标,显示计数是C1。
消除光标:
DO
Loop until showcursor(False)<-5
借助D0-loop循环,不断递减showcursor的内部