存储文件,按键盘上的功能键F5,运行程序,程序运行的初始画面如图2-12所示。
在程序的运行过程中,可以随时的改变窗体的大小和位置,同时PictureBox控件会随着窗体的改变而改变,图形(填充圆)也会随之作相应的变化,如图2-13所示。
注意:
@ 如果控件的 AutoRedraw 属性被设置为 True,重新绘图就会自动进行,于是就不需要 Paint事件。

图2-12 程序运行的初始画面

图2-13 重绘后的窗体
PaintPicture 方法用以在 PictureBox控件上绘制图形文件(*.bmp, *.wmf, *.emf, *.ico或* .dib)的内容。
它的语法结构如下所示:
object.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcode
其中PaintPicture 方法的语法中各个部分的说明如表2-5所示。
表2-5 语法说明
|
参 数 |
说 明 |
|
Object |
一个对象表达式,如果省略 object,带有焦点的 Form 对象缺省为 object |
|
Picture |
要绘制到 object 上的图像来源 |
|
x1, y1 |
指定在控件上绘制 picture 的目标坐标(x-轴和y-轴) |
|
Width1 |
指示 picture 的目标宽度,如果该参数省略,则使用源宽度 |
|
Height1 |
指示 picture 的目标高度如果该参数省略,则使用源高度 |
|
x2, y2 |
指示 picture 内剪贴区的坐标(x-轴和y-轴),如果该参数省略,则缺省为 0 |
|
Width2 |
指示 picture 内剪贴区的源宽度,如果该参数省略,则使用整个源宽度 |
|
Height2 |
指示 picture 内剪贴区的源高度,如果该参数省略,则使用整个源高度 |
|
Opcode |
是长型数值或仅由位图使用的代码 |
在表2-4中所示的参数中,并不是所有的参数都是必选的参数,其中Width1参数、Height1参数、x2,y2参数、Width2 Height2参数和Opcode参数都是可选的参数。
技巧:
@ 通过使用负的目标高度值(height1)或目标宽度值(width1),可以以水平或垂直翻转位图。
下面通过一个示例程序来说明PaintPicture 方法在PictureBox控件上的应用,本示例程序的作用是显示一幅逐渐缩小的位图文件,实现此功能的具体步骤如下:
首先启动一个新的项目,在屏幕上就会出现一个空白的窗体,在窗体上放置两个PictureBox控件,添加控件后的窗体如图2-14所示。

图2-14 添加控件后的窗体
其中控件的属性设置如表2-6所示。
表2-6 控件的属性设置
|
属 性 |
设 置 |
|
(Name) |
Picture1 |
|
Align |
3 - Align Left |
|
Height |
3195 |
|
Left |
0 |
|
Picture |
(None) |
|
Top |
0 |
|
Visible |
True |
|
Width |
4680 |
|
(Name) |
Picture2 |
|
Align |
0 - None |
|
Height |
1455 |
|
Left |
2160 |
|
Picture |
(Bitmap) |
|
Top |
720 |
|
Visible |
False |
|
Width |
1335 |
其中控件Picture2的Visible属性设置为False,也即控件Picture2在程序运行期间处于不可见的状态,它的作用只是为控件picture1提供一个图像文件的容器。
在程序的设计阶段双击控件picture1,在弹出的代码窗口中找到控件picture1的 Picture1_Click()事件,并且在其中添加下列代码:
Private Sub Picture1_Click()
Dim i As Double
'定义一个变量
For i = 1 To 10 Step 0.01
Picture1.PaintPicture Picture2.Picture, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, i, i, Picture2.ScaleWidth * i, Picture2.ScaleHeight * i
'复制图像
Cls
'清除图像
Next
End Sub
程序说明:
在程序的运行过程中,在控件picture1上单击鼠标时,就会激活控件picture1的Picture1_Click()事件,程序首先定义一个变量I用来控制循环,然后通过语句Picture1.PaintPicture Picture2.Picture,0,0,Picture1.ScaleWidth,Picture1.Scale_Height,I,I,Picture2.ScaleWidth * I,Picture2.ScaleHeight * i 来从控件picture2复制图像文件,动画效果的实现是通过不断的清除图像与重现来实现的。
存储文件,按键盘上的功能键F5运行程序,在控件Picture1上单击鼠标时,控件上就会有一幅图像不断的向左上角移动,并且会留下一个长长的“尾巴”,结果如图2-15所示。

图2-15 程序的运行结果
注意:
@ 在PaintPicture 方法中可以省略任何多个可选的参数,但是需要注意的是,如果想指定某个可选参数,则必须先指定语法中出现在该参数前面的全部参数。
命令按钮(CommandButton)控件可以开始、中断或者结束一个进程,当控件处于有效的状态时,单击CommandButton 控件就会产生一种被按下的感觉,所以通常的情况下CommandButton 控件都是作为一个按钮的形式出现在窗体上,但是有些时候还可以把它作为其他控件的容器。
下面首先介绍一下CommandButton 控件的常用的属性、事件和方法。
DisabledPicture 属性用于设置在控件无效时对一个图片的引用,该图片当控件处于无效的状态时显示在控件中。
它的语法如下所示:
object.DisabledPicture [= picture]
DisabledPicture 属性可以在设计阶段从属性窗口加载图像文件,同时也可以在运行时使用LoadPicture 函数加载图像。
例如在程序的设计阶段双击窗体,在弹出的代码窗口中找到窗体的Form_Load()事件,在其中添加下列代码:
Private Sub Form_Load()
Command1.Enabled = False
'设置控件处于无效的状态
Command1.DisabledPicture = LoadPicture("d:\test.bmp")
'设置控件的DisabledPicture属性
End Sub
添加代码后,返回到窗体的设计界面,设置控件Command1的Style属性值为1,然后存储文件,运行程序,程序运行的初始画面如图2-16所示。

图2-16 程序运行的结果
程序运行后,首先设置控件处于无效的状态,然后设置控件的DisabledPicture属性值,在无效的控件中显示一个图像文件。
注意:
@ 当CommandButton 控件的Style属性设置为0时,DisabledPicture 属性将被忽 略,只当CommandButton 控件的Style属性设置为1时,DisabledPicture 属性才会起作用。
DownPicture 属性用于设置在控件被单击并处于压下状态时对一个对图像文件的引用,该图片在控件处于压下的状态时显示在控件中。
它的语法结构如下所示:
object.DownPicture [= picture]
其中DownPicture属性所引用的图像文件可以在设计阶段从属性窗口加载图像文件,同时也可以在运行时使用LoadPicture 函数加载图像。
例如在程序的设计阶段双击窗体,在弹出的代码窗口中找到窗体的Form_Load()事件,在其中添加下列代码:
Private Sub Form_Load()
Command1.Enabled = True
'设置控件处于有效的状态
Command1.Caption = "控件的DownPicture属性的设置"
'设置控件的Caption属性
Command1.DownPicture = LoadPicture("d:\Arrows.bmp")
'设置控件的DisabledPicture属性
End Sub
存储文件,运行程序,在CommandButton控件上按下鼠标的左键,控件上就会显示一幅图像文件——d:\Arrows.bmp,如图2-17所示。

图2-17 程序运行结果
注意:
@ 当CommandButton 控件的Style属性设置为0时,DownPicture 属性将被忽略,只当CommandButton 控件的Style属性设置为1时,DownPicture 属性才会起作用。
MaskColor属性用于返回或设置一个在CommandButton控件的图像文件中作为透明的颜色。
它的语法结构如下:
object.MaskColor [= color]
在Viusal Basic中使用Microsoft Windows 操作环境的RGB配色方案,如&HFFFFFF代表白色,&HFF&代表红色,&HFF00&代表绿色,&HFF0000代表兰色等。
注意:
@ 只有当CommandButton控件中的UseMaskColor 属性设置为True,同时CommandButton控件的Picture 属性设置为一个位图文件时,MaskColor属性才能够被使用。
UserMaskColor属性用于设置控件是否具有设置透明色的能力,也即设置控件中是否可以使用MaskColor属性来设置透明色。
它的语法结构如下所示:
object.UseMaskColor [= boolean]
其中UserMaskColor属性的设置值及其说明如下:
n True:可以赋值给MaskColor 属性的颜色一个颜色代码,在该颜色所在处创建透明区域;
n False:MaskColor 属性将被忽略。
注意:
@ 只有CommandButton控件的Style属性设置为1时,也即控件处于Graphical状态时,才可以设置UserMaskColor属性。
如图2-18所示即为设置了UserMaskColor属性和MaskColor属性的CommandButton控件的显示情况。