这些日子趁着上自习,把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