资源预览内容
第1页 / 共42页
第2页 / 共42页
第3页 / 共42页
第4页 / 共42页
第5页 / 共42页
第6页 / 共42页
第7页 / 共42页
第8页 / 共42页
第9页 / 共42页
第10页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Visual Basic 程序设计教程,第2页,第7章 图形设计,第3页,本章主要内容,7.1 坐标系统 7.2 图形控件 7.3 绘制图形,(2学时),第4页,7.1 坐标系统,第5页,7.1.1 默认坐标系统,构成一个坐标系需要有三个要素:坐标原点、坐标轴的方向、坐标度量单位。 默认坐标系统,都是从容器的左上角(0,0)坐标开始;x轴的正方向水平向右,y轴的正方向垂直向下;默认的度量单位是缇(Twip,即1/1440英寸)。,第6页,1Visual Basic坐标系统的规则 (1)当移动控件或调整控件的大小时,使用控件容器的坐标系统。 (2)所有图形方法和Print方法都使用容器的坐标系统。 (3)当创建用来调整窗体大小或移动窗体的代码时,应先检查屏幕对象的Height属性和Width属性,以确保窗体在屏幕上大小合适。 (4)屏幕的左上角总是(0,0)。,第7页,2Visual Basic坐标系统常用属性 (1)控件在容器中的位置属性 Top属性:控件左上角到所在容器上边沿的距离。 Left属性:控件左上角到所在容器左边沿的距离。 (2)控件自身宽度、高度的属性 Width属性:控件本身的宽度。 Height属性:控件本身的高度。,第8页,(3)容器(窗体、图片框)的坐标属性 ScaleMode属性 坐标度量单位由容器对象的ScaleMode属性决定,ScaleMode属性的设置如表7-1所示。,第9页,ScaleLeft、ScaleTop属性 ScaleLeft属性为容器左上角的横坐标;ScaleTop属性为容器左上角的纵坐标。 ScaleWidth、ScaleHeight属性 ScaleWidth属性为容器内部的宽度值,ScaleHeight属性为容器内部的高度值。 CurrentX、CurrentY属性 CurrentX属性为当前点在容器内的横坐标,CurrentY属性为当前点在容器内的纵坐标。,第10页,7.1.2 用户自定义坐标系统,1通过对象的坐标属性自定义坐标系。 用户可以利用ScaleLeft、ScaleTop、ScaleWidth、ScaleHeight属性自己定义坐标系。 在标准坐标系统中,ScaleLeft和ScaleTop属性总是0;ScaleWidth和ScaleHeight属性则是根据坐标系统的长度单位计算的内部区域的实际宽度和高度。 ScaleLeft和ScaleTop属性的值用于控制对象左上角坐标,所有对象的ScaleLeft和ScaleTop属性的缺省值为0,坐标原点在对象的左上角。当改变ScaleTop或ScaleLeft的值后,坐标系的X轴或Y轴按此值平移形成新的坐标原点。右下角坐标值为(ScaleLeft+ScaleWidth, ScaleTop+ScaleHeight)。根据左上角和右下角坐标值的大小自动设置坐标轴的正向。X轴与Y轴的度量单位为分别为1ScaleWidth和1ScaleHeight。,第11页,例如: ScaleLeft = 500 ScaleTop = -500 ScaleWidth = -1000 ScaleHeight = 1000 此时,窗体的左上角坐标为(-500,500),窗体的右下角坐标为(500,-500),整个窗体在水平方向被分为1000 等份,在垂直方向被分为1000等份。,第12页,2使用Scale方法自定义坐标系 用户可以使用Scale方法用于为窗体、图片框或Printer对象设置新的坐标系统,此时系统将自动把ScaleMode属性设置为0。其语法格式为: 对象.Scale (x1, y1)-(x2, y2) 其中,(x1,y1)设置对象的左上角坐标,(x2,y2)设置对象的右下角坐标。对象在x方向上被分为x2-x1等分,在y方向上被分为y2-y1等分。,第13页,例如: Scale (-500, 500)-(500, -500) 该语句将窗体Form1的左上角和右下角设置为(-500, 500)和(500, -500),整个窗体在水平和垂直方向均被分为1000 等份。,第14页,7.1.3 应用范例,例7-1 使用CurrentX和CurrentY属性,在窗体上输出立体字效果。,第15页,Private Sub Form_Click() FontName = “隶书“ FontBlod = True FontSize = 40 ForeColor = RGB(0, 0, 0) 黑色 CurrentX = 100 CurrentY = 20 在(100,20)处输出 Print “文字的立体效果“ ForeColor = RGB(255, 255, 255) 白色 CurrentX = 160: CurrentY = 60 在(160,60)处输出 Print “文字的立体效果“ End Sub,第16页,例7-2 在窗体的单击事件中,用对象的坐标属性自定义窗体的坐标系。 Private Sub Form_Click() ScaleLeft = -200 ScaleTop = 250 ScaleWidth = 500 ScaleHeight = -400 Line (-200, 0)-(300, 0) 画X轴 Line (0, 250)-(0, -150) 画Y轴 CurrentX = 0: CurrentY = 0: Print 0 标记坐标原点 CurrentX = 280: CurrentY = 40: Print “X“ 标记X轴 CurrentX = 10: CurrentY = 240: Print “Y“ 标记Y轴 End Sub,第17页,此时,窗体的左上角坐标为(-200,250),窗体的右下角坐标为(300,-150),整个窗体在水平方向被分为500 等份,在垂直方向被分为400等份。,第18页,例7-3 在窗体的单击事件中,用Scale方法自定义窗体的坐标系。 Private Sub Form_Click() Scale (-250, 200)-(250, -200) Line (-250, 0)-(250, 0) 画X轴 Line (0, 200)-(0, -200) 画Y轴 CurrentX = 0: CurrentY = 0: Print 0 标记坐标原点 CurrentX = 220: CurrentY = 0: Print “X“ 标记X轴 CurrentX = 10: CurrentY = 200: Print “Y“ 标记Y轴 End Sub,第19页,此时,窗体的左上角坐标为(-250,200),窗体的右下角坐标为(250,-200),整个窗体在水平方向被分为500 等份,在垂直方向被分为400等份。,第20页,7.2 图形控件,第21页,7.2.1 Shape控件,1Shape属性 通过设置Shape控件的Shape属性,可以画出矩形、正方形、椭圆形、圆形、圆角矩形或圆角正方形等多种图形。 2BorderWidth属性:设置图形边界的宽度。,第22页,3BorderStyle属性:设置图形控件画线的样式,其属性值的含义为:0 透明线、1 实线(缺省)、2 长划线、3 点线、4 点划线、5 点点划线、6 内实线。 4BorderColor属性:设置Shape控件的边界颜色。 5FillColor属性:设置Shape控件的内部填充颜色。 6FillStyle属性 该属性用于设置Shape控件的内部填充图案样式。其属性值的含义为:0 实心、1 透明、2 水平线、3 垂直线、4 正对角线、5 反对角线、6 交叉线、7 对角交叉线。,第23页,例7-4 利用Shape控件产生棋盘。 在窗体上添加一个Shape控件,设置其Index属性为0,BackColor为白色,BackStyle属性值为1,在Form_Load()事件中编写代码如下: Private Sub Form_Load() Dim mtop As Integer, mleft As Integer, i As Integer, j As Integer mtop = 0 棋盘顶边初值 For i = 1 To 19 mleft = 50 棋盘左边位置 mtop = mtop + Shape1(0).Height For j = 1 To 19 k = (i - 1) * 19 + j Load Shape1(k) If k Mod 2 = 0 Then Shape1(k).BackColor = QBColor(0) Shape1(k).Visible = True Shape1(k).Top = mtop Shape1(k).Left = mleft mleft = mleft + Shape1(0).Width Next j Next i End Sub,第24页,7.2.2 Line控件,1X1、Y1、X2、Y2属性 设置(或返回)该直线的起点和终点的x坐标及y坐标, 2BorderWidth、BorderStyle、BorderColor属性 BorderWidth属性用于设置直线的宽度;BorderStyle属性用于设置直线的线型;BorderColor属性用于设置直线的颜色。它们的使用方式或取值范围与Shape控件相同。,第25页,例7-5 在窗体上画一系列不同的直线。 设计界面如图7-6所示,在窗体上添加1个Line1控件数组Line1(0) Shape1(4),再添加3个命令按钮Command1 Command1(标题分别为“设置线宽”、“设置线型”、“设置线色”)。运行时单击某一命令按钮,分别将直线设置成不同的线宽、线型和线色,如图7-7所示。,第26页,Command1的Click事件为:(设置线宽) Private Sub Command1_Click() For i = 0 To 4 Line1(i).BorderWidth = i + 3 Next i End Sub Command2的Click事件为:(设置线型) Private Sub Command2_Click() For i = 0 To 4 Line1(i).BorderStyle = i + 1 Next i End Sub Command3的Click事件为:(设置线色) Private Sub Command3_Click() For i = 0 To 4 Line1(i).BorderColor = QBColor(i + 8) Next i End Sub,第27页,7.3 绘制图形,第28页,7.3.1 绘图属性,1DrawWidth属性 该属性用于设置(或读取)使用窗体或图片框对象的绘图方法画线时的线宽,其值以像素为单位, 2DrawStyle属性 该属性用于设置(或读取)使用绘图方法画线时的线型样式,其取值范围为:0 实线(缺省)、1 虚线、2点线、 3 点划线、4 双点划线、5 透明线、6 内实线。,第29页,3FillColor属性、FillStyle属性 利用FillColor属性和FillStyle属性可以对已绘制好的封闭图形(如正方形、矩形、圆等)设置填充颜色或图案。 4AutoRedraw属性 该属性用于设置窗体或其他容器控件对图形重绘的处理。 当AutoRedraw属性设置为True时,重绘自动进行。 AutoRedraw属性值默认为False,此时重绘工作需要依赖Paint事件过程来完成。,第30页,例7-9 在窗体的下方放一个PictureBox控件,在AutoRedraw属性为为True时在窗体上画一个永久的绿色实心圆;每次用鼠标单击矩形框(PicturnBox控件
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号