6.1 6.1 绘图板绘图板6.2 6.2 电子相册电子相册6.3 6.3 知识进阶知识进阶第六章第六章 图形操作与多文档窗体图形操作与多文档窗体Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计本章要点n常用的作图方法n图形控件n多文档窗体的使用Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计1、项目界面展示6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计2、项目分析n本项目实例主要运用了VB6.0的Line、 Circle、Pset方法来画出各种图形并用两个 标签的背景色来标明当前绘图区域的前景色 和填充色,单击标签时弹出颜色对话框,来 选择前景色和填充色利用3 个组合框设置“ 线型”、“线宽”、“填充样式”6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计3、项目实现n程序界面的设计n界面对象属性设置n编写对象事件过程代码6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计4、相关知识点n4.1坐标系统概述 每个容器都有一个坐标系,构成一个坐标系,需 要三个要素:坐标原点、坐标度量单位、坐标轴的 长度与方向。
HeightScaleHeight6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计n包括5个属性(ScaleLeft、ScaleTop、 ScaleWidth、ScaleHeight、ScaleMode)1个方法(Scale)ScaleTop、ScaleLeft属性用于控制容器 对象左边和顶端的坐标,根据这两个属性 值可形成坐标原点 一、使用默认的刻度4、相关知识点6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计属性设置单 位 0用户定义 1Twip(缺省值) 2磅(point,每英寸72磅) 3像素(Pixed,与显示器分辨率有关) 4字符(缺省为高12磅宽20磅的单位) 5英寸(inch,1inch=1440 Twip) 6毫米(millimeter) 7厘米(centimeter)坐标度量单位由容器对象的ScaleMode属性决定缺省 时为Twip每英寸1440个Twip,20个Twip为一磅4、相关知识点6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计二、自定义坐标系4、相关知识点6.1 6.1 绘图板绘图板(1)语法格式: [对象名.]Scale [(x1,y1)-(x2,y2)]Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计(2) 重定义坐标原点及坐标轴方向和度量单位属性ScaleTop,ScaleLeft的值用于控制对象左上角坐标;属性ScaleWidth,ScaleHeight的值可确定对象坐标系X轴与Y轴的正向及最大坐标值。
如果ScaleWidth的值小于0,则X轴的正向向左,如果 ScaleHeight的值小于0,则Y轴的正向向上YXScaleWidth=n ScaleHeight=m Scaleletf=0 ScaleTop=00(n,m)Y XScaleWidth=n ScaleHeight=-m Scaleletf=0 ScaleTop=00(n,-m)Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计1.用AutoRedraw创建持久的图形每个窗体和图片框都具有AutoRedraw属性 (1)当AutoRedraw为默认值False时,VB会把图形输出 到屏幕,而不输出到内存 (2)当AutoRedraw为True时,VB会把图形输出并保存 在内存中注意:运行时,只有当AutoRedraw为True时,才可以用 Cls方法清除4.2使用Visual Basic作图 4、相关知识点6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计2、使用CurrentX、CurrentY设置当前坐标(1)窗体或图形框或打印机的CurrentX、CurrentY属性 给出这些对象在绘图时的当前坐标。
(2)在调用与绘图有关的方法时,CurrentX与CurrentY 的值会自动改变 变化情况如下: •Pset方法:当前坐标用来指向画出的点 •Line方法:当前坐标指向画出线的终点 •Circle方法:当前坐标指向画出圆形的中心 •Cls:当前坐标指向坐标原点 (3)使用CLS方法后,CurrentX、CurrentY属性值为0 4、相关知识点6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计3、用DrawWidth和DrawStyle属性设置 线宽与线型窗体、图形框或打印机的DrawWidth属性给出这些 对象上所画线的宽度或点的大小DrawWidth属性以像素 为单位来度量,最小值为1例6.2 用DrawWidth属性改变直线宽度4、相关知识点6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计窗体或图形框或打印机的DrawStyle属性给出这些对 象上所画线的形状注意:只有当DrawWidth设置为1时,DrawStyle 属性才会产生如上图所示的各种效果。
4、相关知识点6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计4、填充与色彩由Fillstyle、Fillcolor这两个属性决定封闭图形的 填充方式 (1)Fillcolor指定填充图案的颜色,默认的颜色与 Forecolor相同 (2)FillStyle属性取值0~7,用来指定填充的图案,共 有8种内部图案注意:如果FillStyle设置为1(透明),则忽略 FillColor属性,但Form对象除外4、相关知识点6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计4、相关知识点三个重点内容(方法)点、线、圆6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计1、画点(Pset方法)例:1.Pset(500,1000),RGB(255,0,0)2.Pset(500,1000),BackColor ‘擦除该点格式:[对象.]Pset (x,y)[,Color]参数说明:(X,Y):确定画点的位置单精度,可以是常量或变量和表达式Color:设置点的颜色 缺省时,点的颜色为ForeColor4、相关知识点6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计2、项目实例实现 (演示)For i = -180 To 180 Step 0.01 Picture1.PSet (i/50, 5 * Sin(i * 3.14/180)) Next i4、相关知识点用点画正弦曲线6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计直线格式: [对象.] Line[[Step](x1,y1)]-[Step](x2,y2)[,Color] 参数说明:(X1,Y1):画线的起点,省略:当前坐标为起始坐标。
X2,Y2):直线的终点Color:设置直线的颜色 缺省时,为ForeColorStep:表示后面的坐标相对于当前坐标的偏移量4、相关知识点2、画线(line方法)6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计举例: Private Sub Command1_Click() Line (1000, 1000)-(2000, 2000) Line -(300, 3000) Picture1.Line (100, 500)-Step(2000, 2000) Picture1.Line (1500, 1500)-Step(200, 200), vbBlue End Sub如何改变直线的 粗细和线型?DrawWidth属性: 指定线的宽度(以磅为单位) DrawStyle属性: 指定线型4、相关知识点6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计矩形格式: [对象.] Line[[Step](x1,y1)]-[Step](x2,y2)[,Color],B[F]参数说明:(X1,Y1):矩形的左上角点,省略:当前坐标的为起始坐标,(X2,Y2):矩形的右下角点B:表示画一个矩形; F:表示画一个实心的矩形,这时忽略 Fillcolor和FillStyle属性 注意: 有B参数才能使用F例1: Private Sub Command1_Click() Line (500, 500)-Step(1000, 0) Line -Step(0, 1000) Line -Step(-1000, 0) Line -Step(0, -1000) 'Line (500, 500)-Step(1000, 1000), , BF End Sub4、相关知识点6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计怎样在窗体上绘制一幅颜色、大小各不相同的彩环?效果如图4、相关知识点6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计格式: [对象.] Circle[Step](x,y),半径[,[,Color][,[起始角] [,[终止角][,纵横比]]]](1)1时,指向垂直方向的Y半径 参数说明:起始角和终止角:取值在0~ 时为圆弧。
如果起始角的绝对值大于终止角的绝对值,则画一个角 度大于180的圆弧;如果为负数,则画出扇形3、画圆(circle方法)4、相关知识点6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计4、相关知识点6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计Private Sub Command1_Click()X = Form1.WidthY = Form1.HeightFor I = 1 To 10R = Rnd * Y * 0.1Circle (X * Rnd, Y * Rnd), R, QBColor(I)Next I End Sub(3)画圆代码实现(演示)4、相关知识点6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序设计4、相关知识点4.3鼠标事件事 件描 述MouseDown按下任一鼠标按键时发生MouseUp释放任一鼠标按键时发生MouseMove每当鼠标移动到屏幕的新位置时发生6.1 6.1 绘图板绘图板Visual Basic 6.0 Visual Basic 6.0 程序设计程序。