这些日子趁着上自习,把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
'因为对于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