Visual Basic程序设计 教学课件 ppt 作者 王怀彬 第07章

上传人:E**** 文档编号:89183783 上传时间:2019-05-20 格式:PPT 页数:110 大小:386.50KB
返回 下载 相关 举报
Visual Basic程序设计 教学课件 ppt 作者 王怀彬 第07章_第1页
第1页 / 共110页
Visual Basic程序设计 教学课件 ppt 作者 王怀彬 第07章_第2页
第2页 / 共110页
Visual Basic程序设计 教学课件 ppt 作者 王怀彬 第07章_第3页
第3页 / 共110页
Visual Basic程序设计 教学课件 ppt 作者 王怀彬 第07章_第4页
第4页 / 共110页
Visual Basic程序设计 教学课件 ppt 作者 王怀彬 第07章_第5页
第5页 / 共110页
点击查看更多>>
资源描述

《Visual Basic程序设计 教学课件 ppt 作者 王怀彬 第07章》由会员分享,可在线阅读,更多相关《Visual Basic程序设计 教学课件 ppt 作者 王怀彬 第07章(110页珍藏版)》请在金锄头文库上搜索。

1、第7章 绘 图,7.1 绘图相关的知识,图形是Windows应用程序的重要应用领域,可以为应用程序的界面增添良好的视觉效果,提供可视化的结构。 VB提供了非常丰富的绘图功能,利用这些功能,可以为应用程序的界面增加吸引力。 程序设计时,可以使用VB提供的图形控件画图,也可以调用图形方法绘制丰富多彩的艺术图形和直观的统计图表。,7.1.1 坐标系统,坐标系统是一个二维的网格,用于定义容器对象(如窗体和图片框)中点的位置。与平面几何中的坐标类似,它由两个轴组成,沿着水平的方向称为X轴,沿着垂直的方向称为Y轴,两条轴相交的地方称为原点。要表示一个点在坐标中的位置用(x,y),其中x表示这个点在X轴方向

2、上的位置,y表示此点在Y轴方向上的位置,因此(0,0)表示坐标中两轴的交叉点。与平面几何中的坐标不同的是VB中坐标系统的缺省坐标原点(0,0)在容器对象的左上角,水平向右延伸为X轴正方向,垂直向下延伸为Y轴正方向,如图7-1所示。,7.1.1 坐标系统,1刻度单位 VB共提供了8个坐标系刻度单位,缺省坐标使用单位缇(Twip)。程序设计者可以根据实际需要通过改变ScaleMode属性的值来改变刻度单位。ScaleMode属性取值如表7.1所示。,7.1.1 坐标系统,1刻度单位 ScaleMode属性值17对应的坐标系中,X轴正方向均水平向右,Y轴正方向均垂直向下,区别只是坐标系的刻度单位不同

3、,这7种坐标系是VB提供的标准坐标系统。ScaleMode属性值为1对应的坐标系是缺省坐标系。 例如: Form1.ScaleMode=6 设置窗体Form1的坐标系刻度单位为毫米 Picture2.ScaleMode=3 设置图片框Picture2的坐标系刻度单位为像素,7.1.1 坐标系统,7.1.1 坐标系统,2自定义坐标系统 VB中允许自定义坐标系统,自定义坐标系统允许程序设计者灵活地定义原点位置、X和Y轴方向和刻度。 通过ScaleLeft、ScaleTop、ScaleWidth、ScaleHeight属性自定义坐标系统 当改变容器对象以上属性值后,容器对象的左上角在新的自定义坐标系

4、中的坐标值为(ScaleLeft,ScaleTop),容器对象的右下角在新的自定义坐标系中的坐标值为(ScaleLeft+ScaleWidth,ScaleTop+ScaleHeight),根据左上角和右下角坐标值的大小自动设置坐标轴的正方向。X轴和Y轴的度量单位分别为1/ScaleWidth和1/ScaleHeight。 四个属性的设置情况如图7-2所示。 从图中可以看出,自定义坐标系统中的四个属性值是不包含标题栏和边框的。实际上,所有以Scale为前导的属性名,都是针对对象内的有效绘图区域的。,7.1.1 坐标系统,例7.2 将一个标签(Label1)的左上角移动到窗体的中央位置。 如果采用

5、缺省坐标系,就需要以缇为单位来计算窗体中央的位置,显然计算略显繁琐。如果采用自定义坐标系,将窗体的高度和宽度均定义为2个刻度单位,则窗体的中央位置即是坐标为(1,1)的点。界面设计如图7-5(a)所示,为便于区分,将Label1的BackColor属性设置为黑色。运行时单击“移动”按钮,将标签Label1的左上角移动到窗体的中央位置,如图7-5(b)所示。,7.1.1 坐标系统,“移动”按钮Command1的Click事件过程如下: Private Sub Command1_Click() Form1.ScaleWidth = 2 Form1.ScaleHeight = 2 Label1.Le

6、ft = 1 Label1.Top = 1 End Sub,7.1.1 坐标系统,通过Scale方法自定义坐标系统 Scale方法可以重新设置各种容器对象的坐标系统。其使用格式如下: .Scale (x1,y1)- (x2,y2) 该方法用于将容器对象的左上角坐标定义为(x1,y1),右下角坐标定义为(x2,y2)。如果不带任何参数调用该方法,可以使坐标系还原成系统缺省的坐标系。 一旦执行了Scale方法,该容器对象的ScaleMode值会自动变为0,表示自定义坐标系统,其它四个属性(ScaleLeft、ScaleTop、ScaleWidth、ScaleHeight)的值也将自动被设置成与x1

7、、yl、x2、y2相对应的值。其中,x1、y1的值决定了ScaleLeft和ScaleTop属性的值,而(x1,y1)与(x2,y2)两点x坐标的差值和y坐标的差值,分别决定了ScaleWidth和ScaleHeight属性的值。 例如,Picture1.Scale (10,20)-(200,300) 用于将图片框的左上角的坐标定义为(10,20),右下角的坐标定义为(200,300)。,7.1.2 与绘图相关的属性,1当前坐标 当在容器中绘制图形或输出结果时,经常要将它们定位在某一希望的位置,这就必须获得某一点的坐标,即当前坐标。属性CurrentX和CurrentY用于设置或返回当前坐标的

8、水平坐标和垂直坐标。 例如,在点(300,150)处显示“当前坐标用于输出定位”,可以使用以下语句: Form1.CurrentX=300 Form1.CurrentY=150 Form1.Print “当前坐标用于输出定位“,7.1.2 与绘图相关的属性,2线型样式 (1) DrawStyle属性 该属性决定绘图方法输出时的线型样式。其取值如表7.4所示。 (2) BorderStyle属性 该属性用于使用控件时给出画线的样式。其取值如表7.5所示。 表7.4、表7.5中各种线型如图7-6所示。,图7-6 线型,7.1.2 与绘图相关的属性,3线宽 (1) DrawWidth属性 该属性决定

9、绘图方法输出时的线宽。线宽的取值范围为1到32767,以像素为单位,缺省值为1,即一个像素宽。 当DrawWidth属性值大于1并且DrawStyle属性值为l4时,都能产生实线效果。 当DrawWidth属性值等于1时可以画出DrawStyle属性值决定的各种线型的图形。 (2) BorderWidth属性 该属性用于使用控件时定义线的宽度。 当BorderWidth属性值大于1并且BorderStyle属性值为25时,都能产生实线效果。 当BorderWidth属性值等于1时可以画出BorderStyle属性值决定的各种线型的图形。,7.1.2 与绘图相关的属性,4填充 封闭图形的填充方式

10、是由FillColor属性与FillStyle属性决定的。 (1) FillColor属性 该属性指定填充图案的颜色,缺省颜色与ForeColor相同。 (2) FillStyle属性 该属性决定填充封闭图形的图案样式。其取值如表7.6所示,相应的填充样式如图7-7所示。 如果FillStyle设置为1(透明),则忽略FillColor属性。,图7-7 填充样式,7.1.2 与绘图相关的属性,5绘图方式 绘图方式直接影响绘图的输出结果。具体地说,它决定了在绘图区域图形输出时与原位置上的图形相重叠后的外观形象及颜色变化。属性DrawMode用于设置绘图方式,DrawMode共有16种不同的属性值

11、,如表7.7所示。它们反映了对画笔前景颜色与当前显示的背景色所进行的各种布尔代数运算。缺省值为13,表示直接用前景色覆盖背景色。 当使用PSet、Line、Circle等方法来绘制图形时,通过对DrawMode属性的设置,可绘制出丰富多彩的图形或动画。,7.1.2 与绘图相关的属性,6重新绘制 (1) AutoReDraw属性 Windows是一个多任务操作系统,应用程序在运行时其窗体经被移动或被其它窗体覆盖。如果想保持窗体中的内容(图形等)不丢失,就要在窗体移动、改变大小或覆盖它的窗体移开后,重新显示(绘制)窗体中的内容。通常,Windows管理和控制窗口及控件的重新显示,而窗体和图片框内图

12、形的重新显示必须由用户的应用程序来控制。 利用AutoReDraw属性就可以实现对窗体和图片框内图形的重新显示的控制。当AutoReDraw属性为False(缺省值)时,对象中的图形不具有持久性,即当覆盖对象的窗体或控件被移动或改变大小后,对象上的图形将丢失;当AutoReDraw属性为True时,对象的自动重绘功能有效,图形具有持久性,系统会将以前自动保存在内存中的图形调出来重绘,使对象内的图形保持原有的样子。 为了节省内存,可以将窗体的AutoReDraw属性设置为False,但那样的图形将不再自动成为持久的,需要时必须使用代码来管理所有图形的重绘。,7.1.2 与绘图相关的属性,6重新绘

13、制 (2) ClipControls属性 ClipControls属性用于决定Paint事件中的图形方法是对整个对象还是对刚刚露出的区域进行重绘。它还可以决定Windows运行环境是否创建一个不包括该对象的非图形控件的裁减区。 该属性是一个逻辑值,在运行时为只读状态。当ClipControls属性为True(缺省值)时,Paint事件中的图形方法重绘整个对象,在绘制之前,在该窗体的非图形控件的周围创建剪裁区。当ClipControls属性为False时,Paint事件中的图形方法只绘制刚刚露出的区域,在绘制之前,不在该窗体非图形区域的周围创建剪裁区。此时加载和重绘复杂窗体比较快。 剪裁区包括大

14、部分控件,但不包括图形控件(Image、Line、Shape)和Label控件。注意:应尽量避免ClipControls属性为True的控件嵌入到ClipControls属性为False的容器中,这样会导致嵌入的控件不能被正确地重绘。,7.1.3 颜色,VB中经常要涉及颜色,如设置字体的颜色、填充的颜色、绘图线条的颜色以及控制对象的前景、背景颜色等等。在VB中,颜色值是一个四字节的长整型(Long)数,其中最低的三个字节分别对应于构成颜色的三原色:红、绿、蓝。每个字节的取值范围以十进制表示为0255,故三个字节组合在一起,可表示224(16777216)种颜色(实际显示的颜色与显卡和显示器有关

15、)。在VB中,设置或获取颜色值有多种实现方法。,7.1.3 颜色,1使用调色板对话框,7.1.3 颜色,2使用ShowColor方法 可以在程序代码中利用通用对话框控件(Common Dialog)的ShowColor方法打开一个标准的颜色对话框,如图7-10所示,7.1.3 颜色,3使用颜色的十六进制表示 例如,Form1.BackColor=&H00FF0000&用于将窗体的背景色设置为蓝色。,7.1.3 颜色,4使用RGB函数 使用RGB函数可以获取一个长整型(Long)的RGB颜色值,通过该函数可以得到VB可表示的16777216种颜色中的任意一种颜色的值。格式为: RGB(red,g

16、reen,blue) 其中,red、green、blue分别代表红色、绿色、蓝色的值,取值范围是0到255的整数。,7.1.3 颜色,5使用QBColor函数 使用QBColor函数可以从16种颜色种选择一种颜色,返回选中颜色的长整型(Long)的RGB颜色值。格式为: QBColor(value) 颜色参数value是介于0到15的整数,value值及其对应的颜色如表7.9所示。,7.1.3 颜色,6使用颜色常量 为方便用户使用,VB将经常使用的颜色值定义为内部颜色常量。内部颜色常量可以直接被程序引用,而无须重新定义。VB定义的颜色常量如表7.10所示。 例如,Picture1.BackColor = vbCyan用于将图片框的背景色设置为青色。,7.1.3 颜色,7使用系统颜色 系统颜色是操作系统本身定义的颜色,VB允许在应用程序中直接引用系统颜色设置窗体和控件的颜色属性。其优点是保持应用程序与系统的一致性,当用户在Windows的控制面板中改变了系统颜色对应的颜色值,应用程序中被引用的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号