您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > VB教程 第8章 图形程序设计
第8章图形程序设计8.1VisualBasic图形系统概述8.2绘图属性与事件8.3图形控件8.4在VisualBasic应用程序中绘图8.5应用举例引言图形、图像的可视化特点可以使应用程序的用户界面更加友好和具有趣味性,VisualBasic提供了强大的图形绘制工具和能力。本章主要介绍VisualBasic的图形系统、绘图工具、绘图方法以及使用这些工具和方法进行简单的图形和动画设计8.1VisualBasic图形系统概述通常我们在绘制或加载图形(图片)时要控制图形或图片的位置及大小,VisualBasic提供了两种方法,坐标系统和图形容器。在坐标系里绘制图形、在图形容器里加载图片使图形界面设计达到满意的效果。8.1.1默认坐标系统VisualBasic中的坐标系统为一个二维网格,定义一个对象在屏幕上、窗体上或其他容器中的位置可以用其Left、Top、Width、Height属性,对象的Left、Top属性决定了该对象的左上角相对于容器的坐标位置,Width、Height属性决定了该对象的大小。默认坐标系统中,容器的左上角二维坐标值为(0,0)即原点,原点向右为水平轴的正方向,原点向下为垂直轴的正方向。8.1.1默认坐标系统默认状态下,Left、Top、Width、Height属性的长度单位为twip。1twip=1/20点=1/1440英寸=1/567厘米。除了可以用twip作为度量单为外,用户可以在窗体的ScaleMode属性里定义其它的度量单位。如下表:8.1.1默认坐标系统设置值描述设置值描述0用户定义4字符1默认值5英寸2点(1/72)英寸6毫米3像素7厘米8.1.2用户自定义坐标系统VisualBasic允许用户自定义坐标系统,包括原点位置、轴线方向和轴线刻度。方法是用对象的ScaleLeft、ScaleTop、ScaleWidth、ScaleHeight属性。8.1.2用户自定义坐标系统格式:[对象名].ScaleLeft=x[对象名].ScaleTop=y[对象名].ScaleWidth=宽度[对象名].ScaleHeight=高度例如:Form1.ScaleLeft=100Form1.ScaleTop=100Form1.ScaleWidth=400Form1.ScaleHeight=3008.1.2用户自定义坐标系统还可以用scale方法设置。格式:[对象名.]scale[(x1,y1)-(x2,y2)]其中(x1,y1)和(x2,y2)分别表示对象的左上角和右下角坐标8.1.3图形容器图形容器即可以加载图形或图像的对象8.2绘图属性与事件8.2.1CurrentX、CurrentY属性VisualBasic中,窗体和图片框具有CurrentX、CurrentY属性,经常用这两个属性来设置当前绘图点,CurrentX、CurrentY只能在代码编写时使用,下面给出了设置窗体和图片框的CurrentX、CurrentY的方法:Form1.CurrentX=xForm1.CurrentY=yPicture1.CurrentX=xPicture1.CurrentY=y8.2.2图形控件的主要属性图形控件的属性,决定了所绘制图形的外部特征,不同的图形控件所具有的属性不同,比如Shape控件主要由Shape、BorderStyle、FillStyle、BackColor、BorderColor、FillColor等属性,而Line控件主要有BorderStyle、BorderColor、BorderWidth等属性。图形控件的具体属性将在下一节结合具体的图形控件介绍8.2.3AutoRedraw属性窗体和图片框控件具有AutoRedraw属性,属性值可以设置为True或Flase。当为True时,会将窗体或图片框中的图形或文字以图像(Image)的形式保存在内存中,因此要重现窗体或图片框里的内容时,只需调出保存的内容即可;当为Flase时,窗体或图片框中的任何以图形方式显示的对象都不保存在内存中,所以如果这些对象被其它对象暂时挡住,或窗体大小发生变化,这些对象将会丢失。8.2.3AutoRedraw属性显然,当AutoRedraw为True时,要占用更多的内存资源,特别是当图形较大并比且复杂时,较多的内存被占用,会导致系统整体性能下降,所以一般将AutoRedraw设置为Flase,如果又要重现窗体或与片框里的内容,可以用后面介绍的Paint事件。8.2.4容器控件的主要图形属性容器控件除了AutoRedraw属性外,常用的还有DrawMode、DrawStyle、DrawWidth、FillStyle、和FillColor等属性。1、DrawMode属性属性值为1~16,和BackColor及ForeColor属性结合使用,使绘制的图形达到不同的视觉效果。该属性可以在属性窗口里设置,也可以在程序里设置。例如:属性值功能属性值功能1像素变黑9将笔颜色与当前颜色进行逻辑与2对属性值为15的结果再取逻辑非10对属性值为7的结果取逻辑非3先对比颜色进行逻辑非,再与笔颜色进行逻辑与11像素颜色保持原色不变4像素色变为前景色的补色12先对笔颜色进行逻辑非,在与当前颜色进行逻辑或8.2.4容器控件的主要图形属性2、DrawStyle属性属性值为0~6,用于指定图形方式创建的线是实线还是虚线属性值线型属性值线型0实线3点虚线1虚线4双点虚线2点画线5透明线6内实线8.2.4容器控件的主要图形属性3、DrawWidth属性属性值1~32767,用来设置绘图线的宽度,取值以像素为单位,值越大,绘图线越宽8.2.4容器控件的主要图形属性4、FillColor和FillStyle属性使用FillColor和FillStyle属性,可以对已绘制好的封闭图形(圆、正方形等)设置填充图案。FillStyle属性值0~7,对应的填充图案分别为纯色、透明、横条纹、竖条纹、上斜条纹、下斜条纹、交叉条纹、斜交叉条纹。FillColor为填充色属性。8.3图形控件VisualBasic常用图形控件的使用方法8.3.1图片框控件图片框控件(PictureBox)可以用来显示图片文件,也可以用来进行图形的绘制,还可以在其中输出文字。8.3.1图片框控件PictureBox控件显示的图形在设计状态可以通过设置PictureBox的Picture属性指定要装入的图像文件,在这里可以使用Gif、Jpg、Bmp、Ico、Cur文件。PictureBox空间显示的图形还可以在程序的代码中使用LoadPicture函数载入图片。格式:对象.Picture=LoadPicture(“图片的绝对路径与文件名“)8.3.1图片框控件PictureBox控件中的图形大小不能改变,但可以通过设置其AutoSize属性为True来自动适应图形的大小,反之为False时图像大于图形框以外的部分将会被自动裁掉。PictureBox除了用来显示图片以外,还可以用来作为输出的“画布”,在图片框中使用Cls(清屏)、Print、Line、Pset等方法实现在PictureBox控件中的绘图,并且PictureBox可以和窗体一样作为其它控件的容器。PictureBox的主要事件是Click及DblClick。8.3.2图像框控件图像框控件(Image)仅仅被用来显示图像。显示图像的方法一可以在其Picture属性里设置,二可以用LoadPicture方法指定,还可以从PictureBox里复制到Image。图像框只有Streth属性,而没有Autosize属性。当Streth属性为True时,加载的图像根据图像框控件的大小,自动进行相应的缩放操作;当属性为False时,加载的图像大小不变,图像框按图像的大小自动调整尺寸。8.3.2图像框控件图像框与图形框有如下区别:l(1)图像框比图形框占用较少的存储空间,显示速度更快,所以在二者都可以满足需要时,应优先使用图像框。l(2)图形框是“容器”控件,可以作为父控件,在其控件里可以放置其它子控件。图像框的位置发生变化时,其内的子控件做同步移动。图像框不能作为父控件。l(3)图形框可以通过Print方法显示文本,图像框不行。l(4)图形框、图像框都有Name、Picture等属性和LoadPicture方法,但图形和控件本身适应的方法和使用的属性不同。8.3.3形状控件ShapeVisualBasic还提供了Shape和Line控件用来在容器里绘制简单的图形。Shape控件主要有Shape、BorderStyle、FillColor、FillStyle等属性。其中:Shape属性为形状,有0~5六种取值FillStyle为填充线条属性,有0~7种取值FillColor为填充颜色(前景)属性Shape控件的上述属性不仅可以在控件里设置,也可以在代码里设置,方法是:对象.属性名=属性值8.3.4直线控件LineVisualBasic还提供了直线控件(Line),其作用可以划出不同的直线Line控件常用的属性有:BorderStyle、BorderWidth、BorderColor、DrawMode8.4在VisualBasic应用程序中绘图8.4.1常用的绘图方法方法描述方法描述Cls清除所有图形和Print输出Line画线、矩形或填充框Pset设置各个像素的颜色Circle画圆、椭圆或圆弧Point返回指定点的颜色值Paintpicture在任意位置画出图形8.4.2画点、直线、矩形1、画点(Pset方法)Pset方法在指定点、按确定的像素颜色画点。格式:[object.]Pset(x,y)[,color]object为窗体或图片框控件,也可以时打印机,如省略则默认的为当前窗体。Color为颜色值,如省略则模认为当前ForeColor值。8.4.2画点、直线、矩形2、画直线(Line方法)Line方法再指定的两点之间按指定的颜色画一条直线。格式:[object.]Line[(x1,y1)]-(x2,y2)[,Color]第一坐标(x1,y1)如省略则默认从CorrentX和CurrentY为起点。画线的线型、线宽、填充色取决于当前的DrawStyle、DrawWidth和DrawMode属性8.4.2画点、直线、矩形3、画矩形也使用Line方法,但注意和画直线的参数不同。格式:[object.]Line[(x1,y1)]-(x2,y2),[Color],B[F]其中,(x1,y1)为矩形的左上角坐标,(x2,y2)为矩形的右下角坐标;Color为矩形边框颜色;使用参数B而不用F则矩形的填充色为当前FillColor值,用了参数F,则矩形以边框的颜色填充。8.4.3画圆、椭圆、弧线1、画圆给出圆心坐标和半径值即可以按当前设值的线型及线宽画一个圆,也可以同时给出颜色值。例如:PrivateSubForm_Click()DrawWidth=3Circle(1500,1500),800Circle(3100,1500),800,RGB(0,0,255)‘边框为蓝色EndSub8.4.3画圆、椭圆、弧线2、画椭圆设置aspect的值,如大于1,则画出的椭圆高而窄,小于1,则画出的椭圆扁而平。注意:在使用Circle方法时,参数省略的情况下,逗号不能省略。8.4.3画圆、椭圆、弧线3、弧线使用参数start和end可以画出不同的圆弧或椭圆弧,aspect为1时画出的为圆弧,其它取值画出的为椭圆弧。注意:当start和end的取值在0~2π之间时,绘制的是圆弧或椭圆弧,设置的填充色不起作用;当start和end的取值在-2π~0之间时,绘制的是扇形或椭圆扇形,设置的填充色起作用;当start取0或-2π,end取2π或0时,绘制出的为1个点而不是圆或椭圆。8.5应用举例8.5.1绘制函数曲线8.5.2简单动画设计本章小结本章主要介绍了VisualBasic的图形系统及图形工具和方法,通过本章的学习应达到以下目的:1)熟悉和理解V
本文标题:VB教程 第8章 图形程序设计
链接地址:https://www.777doc.com/doc-3264675 .html