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

    这些日子趁着上自习,把VB中我还没有涉及到的领域好好研究一下。看到绘图部分,想想如果用它来激发学生对VB的兴趣,应该效果不错。想当初咱玩GW-Basic的时候,天天写程序就是“摆星星”,摆个正三角,倒三角,四边形等等,乐此不疲。都快30岁的人了,那种痴迷的劲头比今天学生玩那些弱智小游戏有过之而无不及。现在的vb绘图能力比GW-Basic强大多了,正好我们的教材最后一章也是讲VB绘图,只不过因为九年级课时太少,从来没讲过。如果把这一章提到前面来讲,应该是个不错的主意。

    VB绘图中主要使用 Line() 和 Circle() 两个函数,用法很简单。画个线条、矩形、椭圆之类的学生可能兴趣不会保持太久。如果指导学生来给自己开发一个小软件,那是很有成就感的啊。我们就来开发一个简单的星爆屏保,也可以在此基础上改进一下,改成矩形变换、小球追赶等等。

    编译一下,将编译成的Projedt1.exe 改名为“我的屏保.scr”,并复制到 c:/windows/system32 目录下,在“显示”窗口的“屏幕保护程序中就可以找到它了,选中它应用一下就OK了,如图:

'新建一个VB程序,将form1的BorderStyle(边框风格)属性设为0,即无边框。
'因为对于Form和Textbox等控件,其边框风格在运行时是只读的,所以不能用代码修改,用API可以。
'再向窗体上添加一个时钟控件。其他无需任何改动,复制下面的代码到代码编辑窗口即可

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 = 1000             '时钟间隔为1秒
End   Sub

Private   Sub  Timer1_Timer()
     Call  star
End   Sub

Private   Sub  star()
     Dim  i As Integer
     Dim  ccode As Integer
     Dim  pointx As  Single                '定义中心点x,y
     Dim  pointy As  Single
     Dim  col As  Single                   '定义随机点x,y
     Dim  row As  Single

     Randomize                           '置随机数种子
    Cls
    Scale (0, 0)-(100, 100)            '重定义屏幕坐标系统
    pointx = 100 *  Rnd
    pointy = 100 *  Rnd
     For  i = 1  To  100
        col = 100 *  Rnd
        row = 100 *  Rnd
        ccode = 15 *  Rnd                '取随机颜色
         If  ccode = 0  Then  ccode = 15
        Line (pointx, pointy)-(col, row), QBColor(ccode)    '用随机色画线
     Next
    Me.FillColor = vbWhite             '以下在中心点画一个白色实心小圆
    Me.FillStyle = 0
    Me.Circle (pointx, pointy), 0.2, QBColor(15)
End   Sub

Private   Sub   Form _KeyDown(KeyCode As Integer, Shift As Integer)
     If  KeyCode = 27  Or  KeyCode = 13  Then    '当按下Esc键、或回车键时退出屏保
         Call   Form _DblClick
     End   If
End   Sub

Private   Sub   Form _DblClick()
    Me.BorderStyle = 0                     '当双击屏幕时退出屏保
    Timer1.Interval = 0
     End
End   Sub

下载:

http://good.gd/774857.htm

扫描二维码关注公众号,回复: 8902209 查看本文章
发布了14 篇原创文章 · 获赞 7 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/nxhujiee/article/details/5955451