VB:绘图示例—屏保软件设计2
来源:互联网 发布:弹窗推广软件 编辑:程序博客网 时间:2024/05/25 19:59
示例:仿windows98系统自带的三维管道屏保
屏保设计的趣味性在于它的不确定性。设计屏保程序用到的函数不多,代码也不多,即使不能达到预设的要求,也能在屏幕上看到各种意想不到的效果,有时可能会歪打正着,得到一个奇特的动画效果。用两节课的时间,学生完全可以独立设计一个自己的屏保程序。利用随机数函数Rnd()的特性,可以创造出各种各样的奇妙的画案动画。这对于激发学生的学习兴趣是个非常好的题材。
下面是一个仿windows98系统自带的三维管道屏保。三维的效果暂且就用直线代替了。下载中附源码和编译好的“三维管道.SCR”目标程序,用法在“VB:绘图示例—屏保软件设计1”中已有说明。
下载:
http://good.gd/780913.htm
附源码:
'新建一个vb程序,将窗口风格设置为无边框,即Me.BorderStyle = 0
'在窗口上添加一个时钟控件
'其他无须任何设置,复制下面的代码到编辑区,编辑即可
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) '延时函数sleep()的API
Dim px As Single '定义起始点x,y
Dim py As Single
Private Sub Form_Resize()
Me.BorderStyle = 0 '设置窗口为无边框
Me.BackColor = vbBlack '设窗口底色为黑色
Me.Top = 0
Me.Left = 0
Me.Height = Screen.Height '窗口充满屏幕
Me.Width = Screen.Width
Timer1.Interval = 500 '时钟间隔为半秒钟
End Sub
Private Sub Timer1_Timer() '时钟周期
Call tipe
End Sub
Private Sub tipe() '仿windows98系统自带的三维管道屏保
Static i As Integer '静态变量
Dim color As Integer
Dim x As Single '定义下一个自由点
Dim y As Single
Randomize '置随机数种子
Scale (0, 0)-(1024, 768) '重定义坐标系统
x = 1024 * Rnd
y = 768 * Rnd
color = 15 * Rnd '随随机色
If color = 0 Or color = 1 Or color = 8 Then color = 15 '替换与背景相似的颜色
Me.DrawMode = 7 '定义画笔模式,异或笔
Me.DrawWidth = 10 '定义画笔宽度
Line (px, py)-(x, py), QBColor(color)
Sleep 500 '延时500毫秒
Line (x, py)-(x, y), QBColor(color)
px = x
py = y
i = i + 1
If i > 40 Then '画30次后清屏
i = 0
Cls
End If
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 27 Or KeyCode = 13 Then
Call Form_DblClick '按ESC键或回车键退出屏保
End If
End Sub
Private Sub Form_DblClick()
Timer1.Interval = 0 '双击屏幕退出屏保
End
End Sub
'在窗口上添加一个时钟控件
'其他无须任何设置,复制下面的代码到编辑区,编辑即可
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) '延时函数sleep()的API
Dim px As Single '定义起始点x,y
Dim py As Single
Private Sub Form_Resize()
Me.BorderStyle = 0 '设置窗口为无边框
Me.BackColor = vbBlack '设窗口底色为黑色
Me.Top = 0
Me.Left = 0
Me.Height = Screen.Height '窗口充满屏幕
Me.Width = Screen.Width
Timer1.Interval = 500 '时钟间隔为半秒钟
End Sub
Private Sub Timer1_Timer() '时钟周期
Call tipe
End Sub
Private Sub tipe() '仿windows98系统自带的三维管道屏保
Static i As Integer '静态变量
Dim color As Integer
Dim x As Single '定义下一个自由点
Dim y As Single
Randomize '置随机数种子
Scale (0, 0)-(1024, 768) '重定义坐标系统
x = 1024 * Rnd
y = 768 * Rnd
color = 15 * Rnd '随随机色
If color = 0 Or color = 1 Or color = 8 Then color = 15 '替换与背景相似的颜色
Me.DrawMode = 7 '定义画笔模式,异或笔
Me.DrawWidth = 10 '定义画笔宽度
Line (px, py)-(x, py), QBColor(color)
Sleep 500 '延时500毫秒
Line (x, py)-(x, y), QBColor(color)
px = x
py = y
i = i + 1
If i > 40 Then '画30次后清屏
i = 0
Cls
End If
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 27 Or KeyCode = 13 Then
Call Form_DblClick '按ESC键或回车键退出屏保
End If
End Sub
Private Sub Form_DblClick()
Timer1.Interval = 0 '双击屏幕退出屏保
End
End Sub
说明:
本例中须用到延时效果,VB中没有延时函数,只能用API来实现。把通用部分的sleep函数声明复制给学生就可以了。不必讲到哪里去找它,也不必讲API的概念。
- VB:绘图示例—屏保软件设计2
- VB:绘图示例—屏保软件设计1
- VC屏保示例
- tkinter示例:屏保程序
- 使用VB监测屏保状态
- VB截屏保存图片
- 滚球屏保(VB 编写)
- [VB.NET]雪花飘的屏保
- VB工程-- 百例79--字体屏保
- 基于手机令牌的屏保软件设计与实现
- 面向对象软件设计原则(五) —— 应用示例
- 屏保
- 屏保
- 屏保
- VB.net 绘图代码
- vb.net2005 绘图编辑器
- vb计算机绘图教程
- Android基础入门教程——8.3.2 绘图类实战示例
- JMF简介(百度百科)
- 创建快捷方式到Windows Mobile程序菜单
- VC++ 6.0 编译器参数设置
- UNICODE字符集下CString与char*的转换
- 通过添加角色页面,体现一个人的代码水平,思路是否严谨?
- VB:绘图示例—屏保软件设计2
- UART设备驱动分析
- TileList渲染器中set data调用两次(对同一数据)
- 分析Hibernate的事务处理机制
- MFC程序中ASSERT与VERIFY两个宏的区别
- oracle中以dba_、user_、v$_、all_、session_、index_开头的常用表和视图
- Oracle时间处理方法大全(网上收集)
- Liferay 如何设置用户的默认语言为简体中文
- ubuntu10.10下eclipse的安装及配置