VB:绘图示例—屏保软件设计2

示例:仿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

 

说明:
    本例中须用到延时效果,VB中没有延时函数,只能用API来实现。把通用部分的sleep函数声明复制给学生就可以了。不必讲到哪里去找它,也不必讲API的概念。


©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页