第10章10.1 10.2 10.3 10.4 10.5 *10.6 *10.7
图形操作
坐 标 系 颜 色 图 形 控 件(简介) 绘图方法 常用绘图属性、事件和方法 图 层 保存绘图结果
在VB中一般把窗体或图片框作为绘制图形的载体。绘制图形一般分为4个步骤:① 先定义图形载体窗体或图片框坐标系。 ② 设置线宽,线型、色彩等属性。 ③ 指定画笔的起止点位置。 ④ 调用绘图方法绘制图形。
10.1 坐 标 系1. 默认坐标系
在VB中,每个容器对象都有一个坐标系,用 于定义容器中对象的位置。 VB坐标系的缺省坐标原点(0,0)在容器对象的 左上角, 水平方向的x坐标轴向右为正方向,
垂直方向的y坐标轴向下为正方向, (0,0) 缺省度量单位为“缇”(Twip)。 1cm = 567twip
2. 用ScaleMode属性定义度量单位(见P221)值 0 1 2 3 4 5 6 7 常 vbUser vbTwips vbPoints vbPixels vbCharacters vbInches vbMillimeters vbCentimeters 量 说 明
用户自定义。可设置ScaleHeight、 ScaleWidth、ScaleTop、ScaleLeft属 性 缇(缺省值),1440缇等于一英寸, 1厘米等于567缇点,72点等于一英寸 像素,表示分辨率的最小单位 字符 英寸 毫米 厘米
例如: Form1.ScaleMode=7
3. 当前坐标CurrentX属性:设置或返回容器对象的当前水平坐标。
CurrentY属性:设置或返回容器对象的当前垂直坐标。 例如在图片框Picture1中,使用以下语句可以在 指定的 当前坐标位置输出"欢迎使用Visual Basic 6.0" 。 Picture1.CurrentX = 1000 Picture1.CurrentY = 2000 Picture1.Print "欢迎使用Visual Basic 6.0"
10.2 颜色VB中的颜色可以使用多种方式来设置。
1. 在设计阶段设置颜色BackColor : 设置对象的背景色ForeColor :设置对象的前景色
2. 在运行阶段设置颜色(1)使用RGB函数。返回一个长整型的颜色值。
RGB(Red,Green,Blue)Red:红色取值,范围为0~255
Green:绿色取值,范围为0~255Blue:蓝色取值,范围为0~255 例如,将窗体的背景色设置为红色,可以写成: Form1.BackColor = RGB(255, 0, 0)
(2)使用QBColor函数。返回一个长整型颜色值。QBColor(value)value值 0 1 颜 色 黑色 蓝色 value值 8 9 颜 色 灰色 亮蓝色
2 3 4 5 6 7
绿色 青色 红色 洋红色 黄色 白色
10 11 12 13 14 15
亮绿色 亮青色 亮红色 亮洋红色 亮黄色 亮白色
例如,Form1.BackColor = QBColor(4)
(3)使用颜色常量。VB将经常使用的颜色值定义 为系统内部常量。颜色常量 颜 色 颜色常量 颜 色
vbBlackvbRed vbGreen vbYellow
黑色红色 绿色 黄色
vbBluevbMagenta vbCyan vbWhite
蓝色[m 'd nt ] 洋红色 ['sa n] 青色 白色
例如,将窗体的背景色设置为红色,可以写成:
Form1.BackColor=vbRed
(4)使用颜色的十六进制表示值。用户可以直接 使用该十六进制数为颜色属性赋值
。该十六进制数 表示为:
&H 00 BBGGRR & 长整型符号 蓝、绿、红三原色 保留 表示十六进制例如,将窗体的背景色设置为红色,可以写成: Form1.BackColor = &H000000FF&
10.4 绘 图 方 法使用容器对象的PSet、Line和Circle方法,可以在容 器中绘制各种图形。 10.4.1 PSet方法 在容器对象的指定位置用特定的颜色画点。 [对象名.]PSet [Step] (x,y) [,颜色] 【说明】[Step]规定了(x,y)的值相对于原点(省略)还 是相对于(CurrentX,CurrentY),省略表示相对于原点。 【例题】综合三种鼠标事件绘图。要求按下鼠标左键时启 动绘图;若同时按下Shift键,开始擦图。鼠标移动时按相 应轨迹绘图或擦图,所谓擦图是以窗体的背景色画图。释 放鼠标键时整个过程结束。
10.4.2 Line方法Line方法用于画直线和矩形。[对象名.]Line [Step] [(x1,y1)]–[Step] (x2,y2) [,颜色 ][,B[F]]【说明】① Step:可选项,当在(x1,y1)前出现时, (x1,y1)表示相对于当 前坐标位置的坐标;当在(x2,y2)前出现时表示, (x2,y2)表示相对于图 形起点的终点坐标
②B、F: B表示画矩形;F表示填充矩形 ③执行Line方法后,当前坐标被设置在终点坐标(x2,y2)。线的宽度取决于容器对象的DrawWidth属性值。 【例题】在窗体上从坐标原点到光标所在处划线
10.4.3 Circle方法Circle方法用于在容器对象上画圆形、椭圆形、 圆弧和扇形[对象名.]Circle [Step](x,y),半径,[颜色],[起始角],[终止角][,纵横比]
【例题】在窗体上按下鼠标时,以光标所在处为圆心画等距同心圆
10.5 与绘图有关的常用属性、事件和方法1.Cls方法
清除图形或字符,格式:[对象名.]Cls 2.线宽(DrawWidth)属性 (DrawWidth属性用于设置在该对象上用图形方法 输出的图形的线宽。该属性值以像素为单位表示, 取值范围从1到32767,缺省值为1。
3.自动重画(AutoRedraw)属性 AutoRedraw属性提供了重新显示窗体和图片框 内图形或字符的功能。 AutoRedraw属性为False(缺省值)。不具有 重画功能。 AutoRedraw属性为True时,对象具有自动重画 中能。 AutoRedraw 属性演示