想要学习Viusal Basic的可视化编程,在熟悉Viusal Basic语法结构的基础上,熟练的利用Viusal Basic中常用的控件是非常必要的,所以本章我们将带领读者来学习Visual Basic 6.0中的这些基本控件。
Viusal Basic为了方便用户开发应用程序,提供了很多的可视化控件,在本章只是介绍一些常用的基本控件,至于高级的Active X控件的应用,在随后的各章中会逐一的加以介绍,在此就不加叙述了。
图片框(PictureBox)控件可以显示来自位图、图标或者元文件,以及来自增强的元文件、JPEG 或 GIF 文件的图形。如图2-1所示即为一个加载有位图文件的PictureBox控件。

图2-1 加载位图的控件
PictureBox 控件在Viusal Basic的图形图像处理中占有很重要的地位,同时它本身也有很多独特的属性、事件和方法,下面就对PictureBox 控件的特殊属性和方法作一个系统的介绍。
Align 属性返回或设置一个值,确定对象是否可在窗体上以任意大小、在任意位置上显示,或是显示在窗体的顶端、底端、左边或右边,而且自动改变大小以适合窗体的宽度。
它的语法结构如下:
object.Align [= number]
其中Align 属性的设置值及其说明如表2-1所示。
表2-1 Align 属性的设置
|
设 置 |
数字值 |
说 明 |
|
VbAlignNone |
0 |
无,可以在设计时或在程序中确定大小和位置 |
|
VbAlignTop |
1 |
顶部,对象显示在窗体的顶部,其宽度等于窗体的 ScaleWidth 属性设置值。 |
|
VbAlignBottom |
2 |
底部,对象显示在窗体的底部,其宽度等于窗体的 ScaleWidth 属性设置值 |
|
VbAlignLeft |
3 |
左边,对象在窗体的左面,其宽度等于窗体的 ScaleWidth 属性设置值。 |
|
VbAlignRight |
4 |
右边,对象在窗体的右面,其宽度为窗体的 ScaleWidth 属性设置值 |
如图2-2所示为PictureBox控件的Align 属性属性设置为4时的显示情况,控件位于窗体的右侧,宽度为窗体的 ScaleWidth 属性设置值。

图2-2 Align 属性属性设置为4
下面的示例代码就是当程序运行时,在窗体上单击鼠标时,程序会自动的判断鼠标的按下位置,并且根据位置的不同来设置PictureBox控件的Align 属性。用 Align 属性可以很快地在窗体的顶部或底部创建工具栏或状态栏。
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X < Form1.Width / 2 Then
If Y < Form1.Height / 2 Then
Picture1.Align = 1
'控件显示在窗体的顶部
Else
Picture1.Align = 2
'控件显示在窗体的底部
End If
Else
If Y < Form1.Height / 2 Then
Picture1.Align = 3
'控件显示在窗体的左面
Else
Picture1.Align = 4
'控件显示在窗体的右面
End If
End If
End Sub
注意:
@ 当Align 值设置为 1 或 2 时,用户改变窗体的大小,控件会自动地改变大小以适合窗体的尺寸。
Appearance属性用于设置窗体上PictureBox控件在设计时的绘图风格。
它有两个设置值如下所示:
0 平面绘制控件和没有可视化效果的窗体;
1 带有三维效果的绘制控件。
如图2-3所示即为Appearance属性设置为不同的值时的显示情况,其中左图为Appearance属性设置为1,而右图为Appearance属性设置为0。

图2-3 Appearance属性设置
注意:
@ Appearance属性在运行时是只读的。
AutoRedraw 属性用于设置控件从图形方法到持久图形的输出,也即用来设置控件是否具有自动重绘的功能。
它的语法结构如下:
object.AutoRedraw [= boolean]
其中AutoRedraw属性的设置值及其说明如下所示:
n True:PictureBox 控件的自动重绘有效,图形和文本输出到屏幕的同时存储在内存的图像中;
n False:使对象的自动重绘无效,且将图形或文本只写到屏幕上。
下面就以一个示例来说明AutoRedraw属性的应用,步骤如下:
首先启动一个新的项目,在空白的窗体上添加一个PictureBox控件,控件与窗体的属性设置如表2-2所示。
表2-2 窗体与控件的属性设置
|
窗体或控件 |
属 性 |
设 置 | |
|
窗体 |
(Name) |
Form1 | |
|
AutoRedraw |
False |
| |
|
Caption |
Form1 |
| |
|
Height |
3600 |
| |
|
Left |
0 |
| |
|
Top |
0 |
| |
|
Width |
4800 |
| |
|
控件 |
(Name) |
Picture1 | |
|
Align |
0 - None |
| |
|
AutoRedraw |
False |
| |
|
Height |
3000 |
| |
|
Left |
840 |
| |
|
Picture |
(None) |
| |
|
Top |
120 |
| |
|
Width |
3000 |
| |
添加控件后的窗体如图2-4所示。
图2-4 添加控件后的窗体
在窗体的设计阶段双击窗体,在弹出的代码窗口中找到窗体的Form_Load()事件,并且在其中添加下列代码:
Private Sub Form_Load()
Dim X, Y As Integer
'声明坐标变量
Dim r As Integer
'声明半径变量
X = Picture1.ScaleWidth / 2
'设置圆心坐标 X 位置
Y = Picture1.ScaleHeight / 2
'设置圆心坐标 Y 位置
For r = 0 To Picture1.ScaleWidth / 2
'设置半径
Picture1.Circle (X, Y, r, RGB(Rnd * 255, Rnd * 255, Rnd * 255) )
'在控件上绘制圆
Next r
End Sub
程序说明:
在程序开始运行后,首先定义两个坐标变量和一个存储圆半径的变量,通过两条赋值语句设置圆心的坐标,然后通过一个循环语句来控制圆的半径,最后通过一条语句 Picture1.Circle (X, Y, r, RGB(Rnd * 255, Rnd * 255, Rnd * 255) )来以随机的颜色在控件上绘制圆。
选择菜单File中的Save选项存储文件,按键盘上的功能键F5键运行程序,程序运行的初始画面如图2-5所示。
图2-5 程序运行的初始画面
但是程序的运行结果并不像我们所预料的那样在控件上绘制一系列的圆,所以一定是程序代码或者控件的设置有问题。
经过仔细的分析之后不难发现,控件的AutoRedraw属性设置为False,这样图形就不能够正常的显示在控件上,所以修改代码如下:
Private Sub Form_Load()
Dim X, Y As Integer
'声明坐标变量
Dim r As Integer
'声明半径变量
Picture1.AutoRedraw = True
'设置AutoRedraw处于有效的状态
X = Picture1.ScaleWidth / 2
'设置圆心坐标 X 位置
Y = Picture1.ScaleHeight / 2
'设置圆心坐标 Y 位置
For r = 0 To Picture1.ScaleWidth / 2
'设置半径
Picture1.Circle (X, Y), r, RGB(Rnd * 255, Rnd * 255, Rnd * 255)
'在控件上绘制圆
Next r
Picture1.AutoRedraw = False
' 关闭AutoRedraw
End Sub
存储文件,重新运行程序,结果如图2-6所示。
图2-6 在控件上绘制圆