您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 第九章vb6.0图形程序设计
第九章图形程序设计9.1图形控件图形控件包括图片框控件、图像框控件、直线控件和形状控件4种,其中图片框和图像框是用来放置图片的,在第5章中已经介绍过,本节介绍另外两种图形控件。9.1.1直线控件直线控件用来创建直线。它的使用方法与其他控件相同,在工具箱中单击直线控件图标,将鼠标移动到窗体上,在所需位置开始拖动鼠标,拖动到合适处后释放鼠标,则在鼠标的拖动起点与终点之间就出现了一段直线,如图9.1所示。单击直线可选中它,并且在直线的两端出现两个小方块。将鼠标指针移动到某个方块上,则指针变成一个十字形,此时拖动鼠标,可以更改该直线的长度与方向,如图9.2所示。也一可以拖动鼠标来改变直线的位置。直线控件的属性较其他控件要少得多,主要用来设置直线的宽度、颜色以及线型等。只有直线的宽度为1(BorderWidth=1)时,BorderStyle属性的7个取值才都有效,否则BorderStyle属性的取值只有0和6有效。例如,直线的宽度为2时,不能将其设置为虚线。如图9.3所示的是各种线型的比较,从上到下,各直线控件的BorderStyle属性的值依次为1~6。与其他控件不同的是,直线控件没有任何事件。因此,在程序运行时,它不能响应用户的任何操作。9.1.2形状控件使用形状控件可以方便地在窗体上绘制出矩形、正方形、圆、椭圆、圆角矩形和圆角正方形等5种基本几何图形。使用形状控件的方法与其他控件相同,这里不再赘述。形状控件的Shape属性是它很主要的一个属性,该属性决定了形状控件所绘制图形的类型。表9.3中列出了Shape属性的值及含义。形状控件也有BorderColor、BorderStyle和BorderWidth属性,且含义与直线控件相同。在默认情况下,使用图形控件绘制出的图形的背景是透明的,这是因为在默认情况下BackStyle属性的值为0〔透明).将该属性的值设置为l.即可在BaekColor属性中指定图形的背景颜色。形状控件的另一个重要属性是Fi1lStyle属性,该属性用来决定图形的填充样式,表9.4中列出了它的取值及含义。如果图形的填充样式不是透明的,即Fi1lStyle属性的值不为l.则可以通过Fi1lColor属性设置图形的填充颜色。图形的各种填充效果,从左到右各图形的Fil1StyIe属性的值依次为0~7。运行该程序,窗体如图9.7所示。单击【形状】设置区中的某单选按钮,则右边的图形就会变成所选的形状,单击【填充】设置区巾的某单选按钮,则图形就会以所选的样式填充。如图9.8所示的是选中【椭圆】与【对角交叉线】单选按钮后的效果。9.2坐标系统在VB中,控件放置在窗体或图片框等对象中,而窗体又放置在屏幕对象中,这些能够放置其他对象的对象称为容器,如窗体、图片框与屏幕都是容器。每个容器都有一个坐标系统,以便为对象的定位提供参考。容器坐标系统的默认设置是:容器的左上角为坐标的原点。横向向右为K轴的正方向,纵向向下为Y轴的正方向。如图9.9所示的是窗体对象的默认坐标系统。坐标的度量单位由容器对象的ScaleMode属性决定,ScaleMode属性的值与对应的度量单位如表9.6所示。对象的Left和Top属性决定了该对象左上角在容器内的坐标,Width和Height属性决定了对象的大小,它们的单位总是与容器的度量单位相同。如果改变了容器的度量单位,则这4个属性的值都会发生相应的变化,以适应新的坐标系统,对象的实际大小与位置并不会改变。使用默认的坐标系统有时很不方便,用户可以根据具体的需要重新定义容器的坐标系统。属性ScaleWidth和ScaleHeight的值分别用来设置容器坐标系x轴与Y轴的正方向及最大坐标值。X轴的度量单位为容器当前宽度的1/ScaleWidth、Y轴的度量单位为对象当前宽度的1/ScaleHeight。如果ScaleWidth的值小于0,则x轴的正向向上;如果ScaleHeight的值小于0,则Y轴的正向向上。属性ScaleTop与ScaleLeft的值用来设置容器左上角的坐标。例如,将窗体的坐标属性设置为如表9.7所示,则对应的窗体坐标系统如图9.10所示,坐标原点定位在窗体的中点。如果将窗体的坐标属性设置为如表9.8所示,则对应的窗体坐标系统如图9.11所示,坐标原点定位在窗体的左下角,同时Y轴的正方向向上,这是符合人们习惯的一种坐标系统。自定义坐标系统最简单的方法是使用Sacle方法,其语法如下:[对象].Scale[(xl,y1),(x2,y2)]其中对象可以是窗体或图片框,参数(x1,y1)用来定义对象左上角的坐标值,参数(x2,y2)用来定义对象右下角的坐标值。例如,如图9.50所示的坐标系统可以使用如下语句来定义:Scale(-50,-50),(50,50)图9.11所示的坐标系统可以使用如下语句来定义:Scale(0,100),(100,0)9.3绘图属性在对象(窗体或图片框)上绘制图形时,还需要设置对象的绘图属性以确定所绘制图形的特征,例如所画线的宽度以及图形的填充样式等。1.与CurrentX与CurrentY。属性使用Print方法在窗体或图片框中显示文本时,文本总是出现在当前坐标处。例如,在默认情况下,第一次使用Print方法输出的文本显示在窗体的左上角。通过CurrentX与CurxentY属性可以指定当前坐标,这两个属性在设计时不可用。例如:PrivateSubForm_Click()Scale(0,100)-(100,0)自定义坐标系统Fori=10To80Step10Currenty=i指定当前坐标Currenty=iPrint“清华大学”NextEndSub运行该程序,文本在窗体上的显示效果如图9.12所示,如果在代码中不使用CurrentX与CurrentY属性指定当前坐标,则窗体上文本的显示效果如图9.13所示。2.AutoRedraw属性。如果AutoRedraw属性的值为True,则所绘制的图形是持久的。即当窗体被隐藏到其他窗口之后或调整了大小,使用Print方法显示的文本或使用图形方法绘制的图形都将重新显示。如果AutoRedraw属性的值为False,则所绘制的图形是临时的。当窗体被隐藏到其他窗口之后或调整了大小,窗体上的文本或图形将被掩盖掉。例如,图9.14中(a)图所示的是在窗体上正常显示的图形和文本,(b)图所示的是将另外一个窗体移动到该窗体上,然后再移走后的效果,可见,被另一窗体掩盖部分的图形和文本消失了。AutoRedraw属性的默认值为False,在使用Print方法或图形方法时,最好将该属性的值设置为Ture。3.其他绘图属性。表9.9中列出了窗体与图片框控件的其他绘图属性。9.4定义颜色在VB中,颜色是以十六进制数表示的。例如,在【属性】窗口中设置BackColor与ForeColor等颜色属性时,出现的值总是一个十六进制数。以十六进制数来设置颜色既不方便也不直观,一般用户很难看出颜色与十六进制数的对应关系。为此,VB提供了一些颜色常数和颜色函数,使用它们可以方便直观地设置出想要的颜色。1.颜色常量。如果程序中只需要使用8种基本颜色,则使用VB提供的颜色常量即可达到目的。这些常量所代表的颜色可以从它们的名字上看出。表9.11所示的是8种基本颜色与颜色常量的对应关系。例如,要将窗体(名称为Form1)的背景色设置为红色,可以使用如下语句:Form1.BackColor=&HFF.也可以使用颜色常数来设置,语句如下:Form.BackColor=VblRed2.QBColor函数使用QBColor函数可以设置16种颜色,语法如下:QBColor(Color)参数Color是一个0~15的整数,每个整数代表一种颜色,表9.12中列出了该参数的取值与对应的颜色。例如,下列语句的含义也是将窗体的背景色设置为红色。Forml.BackColor=QBColor(4)3.RGB函数。使用颜色常量和QBColor函数只能指定一些基本的颜色,而使用RGB函数则可以指定几乎所有的颜色。RGB函数是通过指定红(Red)、绿(Green)、蓝(Blue)三原色的值来定义颜色的,其语法为:RGB(红、绿、蓝)。红、绿、蓝三原色的值均为0~255之间的整数,颜色值的不同组合将产生不同的颜色,从理论上讲,三原色混合可以产生256×256×256种颜色。表9.13中列出了基本颜色与对应的RGB函数。例如,使用RGB函数设置窗体背景色为红色的语句为:Forml.BackColor=RGB(255,0,0)实际上,对于颜色的十六进制数,每两位一组代表一种原色的颜色值,最低两位为红色的值,其次是绿色和蓝色的值。例如,十六进制数&HOOFFOOFF对应RGB(255,0,255),因此,它表示的颜色为洋红色。9.5图形方法图形方法是指窗体或图片框控件用于绘图的方法,其中包括Line方法、Circle方法、Pset方法以及PaintPicture方法等。使用这些方法可以绘制出直线、矩形、圆、椭圆、弧线、扇形、点以及各种曲线。Line方法用于绘制直线或矩形,其语法格式如下:[对象].Line[[Step](xl,y1)1-[Step](x2,y2)[,颜色][,B[F].对象可以是窗体或图片框控件,其中各参数的含义如下:Step:该参数是可选的,如果使用该参数,则表示起点坐标(x1,y1)或终点坐标(x2,y2)是相对当前点(CurrentX,CurrentY)的,而不是相对坐标原点的。(x1,y1):用于指定直线的起点,也是可选的,如果省略则起点为当前点(CurrentX,CuxrerttY)。(x2,y2)用于指定直线的终点。颜色:可选的。用于指定所绘制的图形的颜色,可以使用RGB函数或QBColor参数指定颜色。如果省略,则使用对象(窗体或图片框)当前的ForeColor属性指定的颜色。B:可选的。如果使用该参数,则绘制出的是矩形。其中(x1,y1)是指矩形左。上项点的坐标,(x2,y2)是指矩形右下顶点的坐标。F:可选的。只有使用了参数B后才能使用该参数。如果使用该参数则矩形以指定的颜色填充;省略F时,矩形以对象当前的FiilColor与Fi1lStyle属性的设置填充。实例9.3使用Line方法。使用Line方法绘制一个柱状图表,每个柱的填充颜色与样式都不同,并且在柱的正上方标有柱的长度,如图9.15所示。程序代码如下:PrivateSubForm_Resize()Constx0=15Consty0=20ClsScale(0,100)-(100,0)自定义坐标系统Line(x0,y0)-(x0,90)绘制Y轴Line(x0,y0)-(90,yo)绘制x轴Fori=10To70Step10FillStyle=i/10设置填充样式FillStyle=QBColor(i/10-1)设置填充颜色Line(x0+i,y0+i)-(x0+i+6,yo),,B绘制矩形CurrentX=x0+i-1CueeentY=y0+i+8PrintNextEndSub在该段代码中,常量x0和y0是柱状图表的坐标原点,定义这两个常量的好处在于;只要改变这两个常量的值,即可确定图表在窗体中的位置。例如,将x0与y0的值分别设置为15和20,则图表在窗体中的位置如图9.16所示。改变窗体的大小后,图表会随着窗体的大小自动缩放,如图9.17所示。实例9.3产生渐变背景。许多Windows应用程序的安装界面,是以一个颜色由蓝至黑的渐变窗体为背景的。使用VB产生窗体背景色的渐变效果很简单,基本思想是:在窗体中从上至下依次绘制多个矩形,只要有足够多的矩形,同时使它们的填充色从蓝变化到黑,就能很好地模拟出渐变效果了。代码如下:PrinvateSubGradient(TheObjectAsObject,Redval,Greenval,Blueval)DimStep,i,T,L,R,BStep=(TheObject.Height/60)T=0L=0R=TheObject.widthB=T+StepFori=1T
本文标题:第九章vb6.0图形程序设计
链接地址:https://www.777doc.com/doc-2184162 .html