VB编程的一些心得
在大学作毕业设计的课题是编制一个教学软件, 所以很自然地和
VB这种易学、易懂、界面友好漂亮的语言打上了交道。 在编写的
过程中当然遇到了许多的问题, 这里将一些简单的小程序写下来
与喜爱编程的朋友们分享。
一、封面
封面的设计是这样的,先出现一窗体,上面为你喜欢的图案。 然
后出现一艘从左向右行驶着的船。 屏幕上方从两侧分别移动出“
欢迎”两个字。
具体的制作方法是:把预先选好的背景图案装入封面窗体中, 窗
体命名为CAI。再分别在三个图像控件(image) 中装入预先制作好
的位图“欢”、“迎”和船型图案。然后把三个image放置在初始
位置(即 图案刚在窗体出现时的位置),并把它们的可视属性都设
置为“false”。程序如下:
Sub Form_load()
cai.Show '显示封面窗体
Dim i '定义变量
image3.visible=True '船型图像控件出现
a1: If image3.Left <6120 Then '6120为船移动到屏幕右边的坐标,此值可以随需要选取 image3.Move image3.Left+50 '移动此图像控件如嫌移动慢,可改变移动值 Goto a1 End If image1.visible="True" '“欢”字出现 a2: If image1.Left < 2120 Then '2120为“欢”字移动到屏幕中间的位置 image1.Move image1.Lefe+50 '移动此图像控件 Goto a2 End If image2.visible="True" '“迎”字出现 a3: If image2.Left> 5420 Then
'5420为“迎”字移动到屏幕中间的位置
image2.Move image2.Left-50 '移动此图像控件
Goto a3
End If
For i=1 To 10000
'使窗体暂停一段时间时间长短可通过改变循环次数实现
Next i
menul.Show '显示程序主窗体
Unload cai '卸载封面窗体
End Sub
二、简单的“动画”
点击一3D按钮后,屏幕表现光线平行进入一玻璃管, 在管中有一
散射中心,有的光线射到此中心后反射到管的初始端。程序如下:
Sub Command3Dl_Click()
Dim i, j, k, m, n '定义变量
For i=2080 To 5520
'显示出三条线,直到图像中的散射中心处,颜色为黑色
Line (2080,2760)-(i,2760),RGB(0, 0, 0)
Line (2080,2860)-(i,2860),RGB(0, 0, 0)
Line (2080,2660)-(i,2660),RGB(0, 0, 0)
Next i
For j=5520 To 4800 Step-1 '反射光线第一次射到管壁上
Line (5520,2760)-(j,2760-(5520-j)*.33333333),RGB
(255, 0, 0) '反射光线,颜色为红色
Line (5520,2660)-(5520+(5520-j),2660),RGB(0, 0, 0)
Line (5520,2860)-(5520+(5520-j),2860),RGB(0, 0, 0)
'没有遇到散射中心的两条光线,为黑色,继续前进
Next j
For k=4800 To 3360 Step-1 '反射光线第二次射到管壁上
Line (4800,2520)-(k,2520+(4800-k)*.33333333),
RGB(255, 0, 0) '反射光线,颜色为红色
Line (6240,2660)-(6240+(4800-k),2660),RGB(0, 0, 0)
Line (6240,2860)-(6240+(4800-k),2860),RGB(0, 0, 0)
'没有遇到散射中心的两条光线,颜色为黑色
Next k
For m=3360 To 2080 Step-1 '反射光线第三次射到管壁上
Line (3360,3000)-(m,3000-(3360-m)*.33333333),
RGB(255, 0, 0) '反射光线,颜色为红色
Next m
End Sub
三、封底
封底的设计是:先出现全黑的屏幕, 然后从上至下逐渐拉出白底
红字的“再见”的字样。先按要求在画板中做一个BMP图,上面写
着“再见”。 然后在一名为 BYE 的窗体中加入一个全屏大的
Picturel,将BMP图装入。程序如下:
Sub Form_Load()
Dim i '定义变量
bye.Show '封底出现
Unload menu1 '卸载主菜单
al: If picture1.Height <7130 Then '7130为图的高度 picturel.Height="picture1.Height+50" '下拉屏幕 GoTo al End If For i="1" To 20000 '使窗体暂停一段时间 Next i End '结束所有操作 End Subぅ