内容正文:
内蒙古自治区(计算机类)对口招生
《Visual Basic程序设计》复习讲义
模块 9 图形与图像
考点 17 绘制图形与显示图片
【考纲要求】
1. 了解绘制图形;
2. 了解显示图片。
【知识网络】
【知识和技能要点】
一、绘制图形
1. Shape 控件与 Line 控件
Shape 控件用来在窗体或图片框上画出常见的几何图形,画什么图形由 Shape 属性决定:取 0 画矩形(也是默认值)、取 1 画正方形、取 2 画椭圆、取 3 画圆、取 4 画圆角矩形、取 5 画圆角正方形;图形内部的填充样式由 FillStyle 属性决定。Shape 控件与 Line 控件都只起表面装饰的作用,它们不支持任何事件,因此不能为它们编写事件过程。
2. PSet 方法
PSet 方法用于在窗体或图片框的指定位置上用指定的颜色画出一个点,调用时在方法名后面写出坐标,坐标要放在一对圆括号里。如果省略颜色参数,就使用当前的 ForeColor 属性所指定的颜色。方法名前面的对象名可以省略,省略时表示在当前窗体上画点。要在同一批位置上画出不同的颜色,可以把它写在循环里逐个绘制。
3. Line 方法
Line 方法用于画直线或者矩形。只给出一组坐标时,从当前坐标点画到该点;给出两组坐标时,则从第一点画到第二点。在颜色参数之后加上字母 B,画出的是一个以这条线段为对角线的矩形;加上字母 BF,则画出的是一个填充了颜色的矩形。坐标前面还可以加上 Step 关键字,表示相对于当前坐标点的位置。
4. Circle 方法
Circle 方法用于画圆、椭圆、圆弧或者扇形。它的坐标参数给出圆心的位置,后面接着写半径;再往后可以依次给出颜色、起始角与终止角,最后还可以给出长短轴的比例。省略起始角与终止角时,画出的是一个完整的圆或椭圆;给出这两个角度时画出的是圆弧,角度前面加上负号则画成扇形。
5. Cls 方法
Cls 方法用于清除窗体或图片框上用绘图方法输出的内容,包括用 PSet、Line、Circle 等方法画出的图形以及用 Print 输出的文字。但它不会清除由 Picture 属性指定的背景图片,更不会把窗体或图片框上的控件清掉。Cls 方法不带任何参数,方法名前面的对象名同样可以省略。
二、显示图片
1. 图片框的常用属性
图片框适合在动态环境下使用,它既能够显示图片,也可以作为其他对象的容器,名称的默认值为 Picture1、Picture2 等。它有一个很特别的属性 AutoSize:取 True 时图片框会自动改变自身的大小,把图片的内容完整显示出来;取 False 时图片框的大小保持不变,超出区域的部分被裁剪掉。需要留意,调整大小的是图片框本身,而不是图片。
2. 图片框的容器作用与方法
图片框既然可以充当容器,往它里面添加的其他控件就都成了它的子控件:这些控件会随着图片框一起移动,它们的位置与大小也是相对于图片框而言的,与窗体无关。图片框还支持打印与绘图,既可以用 Print 方法在其中输出文字,也可以用 PSet、Line、Circle 等方法在其中画图,因此常被用来动态地显示计算结果。
3. 图像框与 Stretch 属性
图像框比图片框小巧,占用的内存也更少,但它只能用来显示图片,既不支持绘图方法,也不能作为容器使用。它的关键属性是 Stretch:取 True 时图片会自动调整大小以适应图像框的尺寸;取 False(默认值)时则反过来,由图像框自动调整自身的大小以适应图片。图像框可以接收 Click 等事件,因此常被当作图形命令按钮来使用。
4. 用 LoadPicture 函数装载图片
给图片框或图像框指定图片有两条途径:一是在设计阶段通过属性窗口的 Picture 属性直接选择图片文件;二是在程序运行阶段用 LoadPicture 函数把图片文件读入,再赋给 Picture 属性。若想清除已经装入的图片,可以调用一次不带参数的 LoadPicture 函数,把它的返回值赋给 Picture 属性。
【真题】
2022年真题|单选题第13题 以下关于图片框控件的说法中,错误的是( )
A. 可以通过Print方法在图片框中输出文本
B. 清空图片框控件中图形的方法之一是加载一个空图形
C. 图片框控件可以作为容器使用
D. 用Autosize属性可自动调整图片框中图形的大小
【答案】D
【解析】AutoSize 属性的作用是让图片框根据其中图片的大小自动调整图片框自身的大小,而不是去调整图片的大小,因此 D 项的说法错误。图片框支持 Print 方法,可以在其中输出文本;用 LoadPicture 函数加载一个空图形即可清空其中的图形;图片框还可以容纳其他控件,作为容器使用。
2022年真题|单选题第15题 以下控件中可以作为容器的控件是( )
A. Image控件
B. TextBox控件
C. ListBox控件
D. PictureBox控件
【答案】D
【解析】PictureBox 控件可以容纳其他控件,作为它们的容器:放在其中的控件会随它一起移动,位置也是相对于它来设置的。Image 控件只能用于显示图片,既不能用作容器,也不支持绘图方法;TextBox 控件用于输入和显示文本;ListBox 控件用于显示列表项,三者都不能充当容器。
2026年真题|第13题 图像框(image)的属性中,能够自动调整图形大小以适应图像框尺寸的是( )
A. Autosize
B. Stretch
C. AutoRedraw
D. Visible
【答案】B
【解析】Stretch 属性取 True 时,图片会自动调整大小以适应图像框的尺寸;取 False(默认值)时则由图像框自动调整自身的大小以适应图片。AutoSize 是图片框的属性,作用是让图片框自动改变大小以完整显示内容;AutoRedraw 决定输出内容是否被保存重绘;Visible 控制对象的可见性。
2025年真题|填空第126题 Shape 控件的属性 Shape 的值为 1 时,绘制的图形是________。
【答案】正方形
【解析】Shape 控件的 Shape 属性决定画出什么图形,取值从 0 到 5 依次为:0 矩形(默认值)、1 正方形、2 椭圆、3 圆、4 圆角矩形、5 圆角正方形。取值为 1 时画出的是正方形,因此填正方形;若要画圆则应把该属性设为 3,画椭圆设为 2。
2024年真题|第134题 在窗体上有一个图像框 Image1、一个定时器 Timer1,程序运行后图像框装载图片,然后以每秒一次的速度向窗体右下角移动,每次移动 100twip。程序如下,请补充完善程序。
Private Sub Form_Load()
[13]________ = LoadPicture("c:\images\ball.ico")
Timer1.Interval = [14]________
End Sub
Private Sub Timer1_Timer()
Static x As Integer, y As Integer
x = x + 100
y = y + 100
If x < 2000 And y < 2000 Then
Image1.Move [15]________
Else
Image1.Move 0, 0
End If
End Sub
【答案】[13] Image1.Picture;[14] 1000;[15] x, y
【解析】要给图像框装载图片,应把 LoadPicture 函数的返回值赋给它的 Picture 属性,故 [13] 处填 Image1.Picture。题目要求每秒移动一次,而 Interval 属性的单位是毫秒,1 秒等于 1000 毫秒,故 [14] 处填 1000。计时器每次触发时横坐标与纵坐标都增加 100,要把图像框移到这个新位置上,应调用它的 Move 方法并给出新的坐标,故 [15] 处填 x, y;当坐标超出 2000 时条件不再成立,程序转而执行 Else 后面的语句,把图像框送回左上角重新开始,从而实现循环移动的效果。
【练习题】
一、填空题
1. 图片框的________属性取 True 时,图片框会自动改变大小以显示全部内容。
【答案】AutoSize
【解析】AutoSize 属性取 True 时,图片框会根据其中图片的大小自动改变自身大小,把图片完整显示出来;取 False 时图片框的大小保持不变,超出区域的部分被裁剪掉。要注意调整大小的是图片框本身,而不是图片。
2. 图像框的________属性取 True 时,图片会自动调整大小以适应图像框。
【答案】Stretch
【解析】Stretch 属性取 True 时,图片会自动调整大小以适应图像框的尺寸,图片可能被拉伸变形;取 False(默认值)时则反过来,由图像框自动调整自身大小以适应图片的原有尺寸,这样图片不会被拉伸。
3. 在程序运行时装载图片使用________函数,它的返回值应当赋给对象的________属性。
【答案】LoadPicture;Picture
【解析】在程序运行阶段装载图片要用 LoadPicture 函数,它把指定的图片文件读入内存,返回的结果是一个图片对象,应当把它赋给图片框或图像框的 Picture 属性。若调用时不带参数,则返回一个空图形,可用来清除已装入的图片。
4. Shape 控件的 Shape 属性取 0 时画________,取 1 时画________。
【答案】矩形;正方形
【解析】Shape 控件的 Shape 属性取值从 0 到 5 依次为矩形(默认值)、正方形、椭圆、圆、圆角矩形、圆角正方形。取 0 时画的是矩形,取 1 时画的是正方形;若要画圆应取 3,画椭圆应取 2。
5. 在窗体上画点使用________方法,画直线或矩形使用________方法,画圆使用________方法。
【答案】PSet;Line;Circle
【解析】三个绘图方法各司其职:PSet 用于在指定位置画出一个个点,常写在循环里用来绘制曲线;Line 用于画直线,加上字母 B 或 BF 还能画出矩形;Circle 用于画圆、椭圆、圆弧或扇形。三者都只能在窗体或图片框上绘图。
6. 清除窗体上用绘图方法输出的内容可以使用________方法,它不带任何参数。
【答案】Cls
【解析】Cls 方法用于清除窗体或图片框上用 PSet、Line、Circle 等方法画出的图形以及用 Print 输出的文字,调用时不带任何参数。需要注意的是,它不会清除用 Picture 属性指定的背景图片,也不会清除窗体上的控件对象。
二、单项选择题
1. 图片框控件的 AutoSize 属性取 True 时( )
A. 图片自动改变大小以适应图片框
B. 图片框的大小保持不变
C. 图片被裁剪
D. 图片框自动改变大小以完整显示图片内容
【答案】D
【解析】AutoSize 取 True 时,图片框自动改变自身的大小,使其中图片的内容能够完整显示出来;取 False 时图片框大小保持不变,超出区域的部分被裁剪。无论哪种取值,改变大小的都是图片框而不是图片本身。
2. 图像框(Image)控件( )
A. 可以作为容器使用
B. 只能用于显示图片,不支持图形方法
C. 支持 PSet 方法
D. 占用内存比图片框多
【答案】B
【解析】图像框只能用于显示图片,它既不支持 PSet、Line、Circle 等绘图方法,也不能作为容器来容纳其他控件,这是它与图片框最主要的差别。图像框比图片框小巧,占用的内存也更少。
3. 图像框的 Stretch 属性取 False 时( )
A. 图像框自动调整大小以适应图片
B. 图片自动调整大小以适应图像框
C. 图片被删除
D. 图像框的大小保持不变
【答案】A
【解析】Stretch 取 False 是默认状态,此时图像框自动调整自身的大小以适应图片的原有尺寸,图片不会被拉伸变形;取 True 时则相反,由图片自动调整大小去适应图像框,图片可能被拉伸。
4. 要在窗体上画一个点,应使用( )方法。
A. Point
B. Dot
C. PSet
D. Print
【答案】C
【解析】PSet 方法用于在窗体或图片框的指定位置上按指定的颜色画出一个点,把它写在循环里就可以逐个点地绘制出曲线。Point 是读取指定位置颜色值的方法,Dot 不是 Visual Basic 的方法,Print 用于输出文字。
5. Line 方法中在颜色参数后加上字母 B,画出的是( )
A. 填充了颜色的矩形
B. 以该线段为对角线的矩形
C. 圆
D. 椭圆
【答案】B
【解析】在颜色参数之后加上字母 B,Line 方法画出的是一个矩形,而这个矩形正是以所给两点连线为对角线的。若要画出填充了颜色的矩形,还应当在 B 的后面再加上字母 F,也就是写成 BF。
6. Line 方法中在颜色参数后加上字母 BF,画出的是( )
A. 直线
B. 圆
C. 椭圆
D. 填充了颜色的矩形
【答案】D
【解析】加上字母 BF 时,Line 方法画出的是一个填充了颜色的矩形,其中 B 表示矩形、F 表示填充。只写 B 时画出的是空心矩形,不加任何字母时画出的才是一条直线。
7. Circle 方法的坐标参数与半径之后,依次可以给出的参数是( )
A. 颜色、起始角、终止角、长短轴比例
B. 起始角、颜色、终止角
C. 只能给出颜色
D. 只能给出起始角
【答案】A
【解析】Circle 方法的参数按固定顺序排列:先给出圆心的坐标,接着给出半径,然后依次可以给出颜色、起始角、终止角,最后是长短轴的比例。省略起始角与终止角时画出的是完整的圆或椭圆。
8. Cls 方法的作用是( )
A. 清除窗体上的全部控件
B. 清除用 Picture 属性设置的背景图形
C. 清除用 PSet、Line、Circle 等方法输出的内容
D. 关闭窗体
【答案】C
【解析】Cls 方法清除的是用 PSet、Line、Circle 等绘图方法画出的图形,以及用 Print 方法输出的文字。它不会清除用 Picture 属性设置的背景图形,更不会清除窗体或图片框上的控件对象,也不会关闭窗体。
9. Cls 方法( )
A. 有 1 个参数
B. 不带任何参数
C. 必须带颜色参数
D. 只能由图片框调用
【答案】B
【解析】Cls 方法不带任何参数,写成对象名加方法名的形式即可,方法名前的对象名还可以省略,省略时表示清除当前窗体的内容。窗体与图片框都可以调用 Cls 方法。
10. Shape 控件( )
A. 不支持任何事件,只用于表面装饰
B. 支持 Click 事件
C. 可以作为容器使用
D. 可以输入数据
【答案】A
【解析】Shape 控件与 Line 控件一样,只起表面装饰的作用,它们不支持任何事件,因此不能为它们编写事件过程。若要判断用户是否点中了某个图形,通常改用图像框或者图片框来替代。
11. 要在程序运行阶段给图片框装载图片,可以使用( )
A. LoadPic 语句
B. Picture 语句
C. Open 函数
D. LoadPicture 函数
【答案】D
【解析】运行阶段装载图片要使用 LoadPicture 函数,它把图片文件读入并返回一个图片对象,再赋给对象的 Picture 属性。LoadPic 与 Picture 都不是可调用的函数或语句,Open 用于打开数据文件。
12. 用 LoadPicture 函数把图片装入对象时,应把它的返回值赋给( )
A. Text 属性
B. Caption 属性
C. Picture 属性
D. Image 属性
【答案】C
【解析】LoadPicture 函数的返回值是一个图片对象,应当赋给图片框或图像框的 Picture 属性,例如写成 Image1.Picture = LoadPicture("d:\pic\ball.ico")。Text 与 Caption 保存的是文字,图片框与图像框都没有 Image 这一属性。
三、程序填空题
1. 下列程序用图片框装载图片,并在单击命令按钮后清除图片框上绘制的内容,再输出一行文字。请补充完整下列程序代码。
Private Sub Form_Load()
Picture1.[1]________ = LoadPicture("d:\pic\flower.bmp")
End Sub
Private Sub Command1_Click()
Picture1.[2]________
Picture1.[3]________ "欢迎使用"
End Sub
【答案】[1] Picture;[2] Cls;[3] Print
【解析】装载图片要把 LoadPicture 函数的返回值赋给图片框的 Picture 属性,故 [1] 处填 Picture。要清除图片框上绘制的内容,应调用它的 Cls 方法,故 [2] 处填 Cls;注意 Cls 只清除绘图方法与 Print 输出的内容,不会清除用 Picture 属性装入的图片。要在图片框中输出文字,应调用它的 Print 方法,故 [3] 处填 Print。
2. 下列程序在窗体上画一个圆和一个矩形。请补充完整下列程序代码。
Private Sub Form_Click()
[1]________ (2000, 2000), 800
Line (3000, 3000)-(4500, 4000), , [2]________
End Sub
【答案】[1] Circle;[2] B
【解析】画圆要使用 Circle 方法,括号中先写圆心的坐标、再写半径,故 [1] 处填 Circle。Line 方法在颜色参数之后加上字母 B,画出的是一个以所给两点连线为对角线的矩形,故 [2] 处填 B;若要画出填充矩形则应写 BF。
原创精品资源学科网独家享有版权,侵权必究
学科网(北京)股份有限公司
$