第十章节图形的控制跟处理课本新课件_第1页
第十章节图形的控制跟处理课本新课件_第2页
第十章节图形的控制跟处理课本新课件_第3页
第十章节图形的控制跟处理课本新课件_第4页
第十章节图形的控制跟处理课本新课件_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十章节图形的控制跟处理课本新第十章节图形的控制跟处理课本新第十章节图形的控制跟处理课本新10.1图形控件VB提供的与绘图有关的标准控件有图片框(PictureBox)、图像框(Image)、直线(Line)和形状(Shape)。Image、Line、Shape控件需要较少的系统资源,且包含PictureBox中可用的属性、方法和事件子集,因此他们比PictureBox控件显示速度快些。PictureBox和Image控件可以显示位图、图标、图元文件中的图形,也可处理GIF和JPEG格式的图形文件。第十章节图形的控制跟处理课本新第十章节图形的控制跟处理课本新110.1图形控件VB提供的与绘图有关的标准控件有图片框(PictureBox)、图像框(Image)、直线(Line)和形状(Shape)。Image、Line、Shape控件需要较少的系统资源,且包含PictureBox中可用的属性、方法和事件子集,因此他们比PictureBox控件显示速度快些。PictureBox和Image控件可以显示位图、图标、图元文件中的图形,也可处理GIF和JPEG格式的图形文件。10.1图形控件VB提供的与绘图有关的标准控件有图片框(P210.1.1PictureBox控件图片框(PictureBox)控件的主要作用是在窗体的指定位置为用户显示图片,也可作为其它控件的容器、显示Print方法输出的文本或显示图形方法输出的图形。实际显示的图片由Picture属性决定。在工具箱面板中,PictureBox控件的图标如图10-1所示。图10-1PictureBox控件的图标

10.1.1PictureBox控件图片框(Picture310.1.1PictureBox控件1、主要属性基本属性Name标识唯一的对象,运行时为只读Height、Width、Top、Left标识控件在容器上显示的尺寸及位置Enabled决定对象运行时是否有效。True:运行时有效;False:运行时无效Visible决定对象运行时是否可见。True:运行时可见;False:运行时不可见Font设置与字体有关的所有内容。包括FontName、FontSize、FontBold、FontItalic、FontUnderline等特有属性PicturePicture属性用来返回或设置控件中要显示的图片,可以通过属性窗口进行设置。如果要在程序运行过程中载入图片,常常使用LoadPicture函数AutoSizeAutoSize属性用于设置是否能自动调整图片框大小,以完整显示装入的图片。值为True时,自动调整大小,以显示装入的整个图片;值为False时,保持控件大小,装入的图片超出的部分被截除。10.1.1PictureBox控件1、主要属性基Nam410.1.1PictureBox控件2、加载图片(1)在设计阶段加载图片文件有两种方法:1)通过设置属性窗口中的Picture属性来加载图片,步骤如下:在窗体上建立一个图片框保持图片框为激活的控件,在属性窗口中找到Picture属性,单击该属性条,其右侧出现“…”按钮单击“…”按钮,屏幕显示“加载图片”对话框,从相应文件夹中找到所需加载的图片,单击打开,图片即被加载2)利用剪贴板加载用绘图或图像处理软件完成图形处理,并将图形复制到剪贴板中切换到VB,在窗体上建立图片框,并保持为激活状态使用“粘贴”命令,即完成图片加载10.1.1PictureBox控件2、加载图片(1)在510.1.1PictureBox控件2、加载图片(2)在运行阶段通过LoadPicture函数加载图片,格式如下:对象名.Picture=LoadPicture("图片文件名")例如:加载图片:Picture1.Picture=LoadPicture("C:\Pic\MyPic1.gif")10.1.1PictureBox控件2、加载图片(2)在610.1.1PictureBox控件3.卸载图片和复制图片(1)卸载图片卸载图片文件也有两种方法:一种是在设计阶段卸载,另一种是在运行阶段卸载。在设计阶段设置属性窗口中的Picture属性为None,在运行阶段通过LoadPicture函数卸载图片,格式如下:对象名.Picture=LoadPicture()(2)复制图片复制图片可以利用Picture属性和LoadPicture()函数来完成,如:Picture1.Picture=LoadPicture("C:\Pic\MyPic1.gif")Picture2.Picture=Picture1.Picture10.1.1PictureBox控件3.卸载图片和复制图片710.1.1PictureBox控件4.图形文件的保存格式:SavePicturepicture,stringexpression说明:picture:图片框对象或其他对象的picture属性Stringexpression:文件名10.1.1PictureBox控件4.图形文件的保存格式810.1.1PictureBox控件5.Paint事件在一个对象被移动或放大之后,或在一个覆盖该对象的窗体被移开之后,该对象部分或全部暴露时,此事件发生。如果AutoRedraw属性被设置为True,重新绘图会自动进行,就不需要Paint事件。10.1.1PictureBox控件5.Paint事件在一910.1.1PictureBox控件6.常用方法图片框中常使用Cls方法和Print方法。【例10-1】在C:\新建一个文件夹stu1,将我的文档中的示例图片Sunset.JPG复制到stu1文件夹下。再启动VB,在stu1文件夹下新建一个工程文件,其布局与运行结果如图10-2所示。图10-2控件布局图及运行结果图

10.1.1PictureBox控件6.常用方法图片框中常1010.1.1PictureBox控件(1)控件选择:两个标签控件:Label1、Label2;两个图片框控件:Picture1、Picture2;三个命令按钮:Cmd1、Cmd2、Cmd3(2)控件属性设置:控件名称属性Caption属性标签Label1Caption源图标签Label2Caption复制图片图片框Picture1PictureNone图片框Picture2PictureNone命令按钮Cmd1Caption加载图片命令按钮Cmd2Caption复制图片命令按钮Cmd3Caption清除图片10.1.1PictureBox控件(1)控件选择:两个标1110.1.1PictureBox控件(3)代码编写:编写命令按钮Cmd1的Click事件:PrivateSubCmd1_Click()Picture1.Picture=LoadPicture(App.Path&"\Sunset.JPG")EndSub

编写命令按钮Cmd2的Click事件:PrivateSubCmd2_Click() Picture2.Picture=Picture1.PictureEndSub编写命令按钮Cmd3的Click事件:PrivateSubCmd3_Click()Picture1.Picture=LoadPicture()Picture2.Picture=LoadPicture()EndSub说明:App.Path用于取得当前工程文件所在的文件夹路径,App.Path&"\Sunset.JPG"指明了Sunset.JPG文件的物理位置。这种方法常被应用,可提高程序的可移植性。10.1.1PictureBox控件(3)代码编写:1210.1.2Image控件图像框(Image)控件是一个简单易用的显示图像文件的控件,其使用的系统资源较少而且显示速度较快,它可以自动调整自身的大小以适应图像大小,或者伸缩图像的大小使图像适合图像框控件的大小。Image加载图片的方法和使用图片的文件格式与PictureBox相同。在工具箱面板中,Image控件的图标如图10-3所示。图10-3Image控件的图标10.1.2Image控件图像框(Image)控件是一个简1310.1.2Image控件1.主要属性基本属性Name标识唯一的对象,运行时为只读Height、Width、Top、Left标识控件在容器上显示的位置及尺寸Enabled决定对象运行时是否有效。True:运行时有效;False:运行时无效Visible决定对象运行时是否可见。True:运行时可见;False:运行时不可见特有属性Picture可通过属性窗口进行设置,也可以在程序中进行设置。VB6.0支持位图文件、图标文件、JPEG及GIF压缩位图文件Stretch自动调整图像框中图形内容的大小。False:图像框可以自动改变大小以适应其中的图形True:图形自动调整尺寸以适应图像框的大小。10.1.2Image控件1.主要属性基Name标识唯1410.1.2Image控件2.常用事件图像框可以响应Click和DblClick事件3.Image与PictureBox的区别(1)PictureBox是“容器”控件,可以作为父控件,而Image不能作为父控件。也就是说,在PictureBox中,可以包含其它控件,作为他的子控件,如果移动PictureBox,则框中的控件也随之一起移动,并且与PictureBox的相对位置保持不变;当PictureBox的大小改变时,这些子控件的图片控制的相对位置保持不变,PictureBox内的子控件也不能移到PictureBox外。(2)PictureBox可以通过Print方法接收文本,并可接收由像素组成的图形,而Image不能接受用Print方法输入的信息,也不能用绘图方法在Image上绘制图形。(3)Image比PictureBox占用内存少,显示速度快。(4)Image没有AutoSize属性,但可以实现图形缩放10.1.2Image控件2.常用事件1510.1.2Image控件【例10-2】在C:\新建一个文件夹stu2,将我的文档中的示例图片Sunset.JPG复制到stu2文件夹下。再启动VB,在stu2文件夹下新建一个工程文件,其布局与运行结果如图10-4所示。图10-4控件布局图及运行结果图

10.1.2Image控件【例10-2】在C:\新建一个文1610.1.2Image控件(1)控件选择:1个图像框Image1;2个命令按钮:Command1、Command2(2)控件属性设置控件名称属性属性值图像框Image1StretchTrue命令按钮Command1Caption放大命令按钮Command2Caption缩小10.1.2Image控件(1)控件选择:1个图像框Ima1710.1.2Image控件(3)代码编写:编写命令按钮Command1的Click事件:PrivateSubCommand1_Click()IfImage1.Height<2000OrImage1.Width<4000ThenImage1.Height=Image1.Height+500Image1.Width=Image1.Width+500EndIfEndSub编写命令按钮Command2的Click事件:PrivateSubCommand2_Click()IfImage1.Height>1000OrImage1.Width>2000ThenImage1.Height=Image1.Height-500Image1.Width=Image1.Width-500EndIfEndSub编写窗体Form1的Load事件:PrivateSubForm_Load() Image1.Picture=LoadPicture(App.Path&"\Sunset.JPG")EndSub 10.1.2Image控件(3)代码编写:1810.1.3Line控件Line控件可用来在窗体、框架或图片框中创建各种直线。既可以在设计时通过设置直线的端点坐标来画直线,又可以在程序运行时动态地改变直线的各种属性。Line控件主要属性是BorderWidth、BorderStyle和BorderColor属性,以及X1、Y1和X2、Y2属性。BorderWidth确定线的宽度,BorderStyle确定线的形状,BorderColor确定线的颜色。X1、Y1和X2、Y2属性控制线的两个端点的位置。程序运行时,不能使用Move方法移动Line控件,但是可以通过改变X1、Y1、X2、Y2属性来移动或调整直线。在工具箱面板中,Line控件的图标如图10-5所示。图10-5Line控件的图标

10.1.3Line控件Line控件可用来在窗体、框架或1910.1.4Shape控件Shape控件可用来在窗体、框架或图片框中创建矩形、正方形、椭圆形、圆形、圆角矩形或圆角正方形。通过设置Shape控件的Shape属性来实现所需要的形状,以控制Shape控件的外观。在工具箱面板中,Shape控件的图标如图10-6所示。图10-6Shape控件的图标10.1.4Shape控件Shape控件可用来在窗体、框2010.1.4Shape控件语法:对象名.Shape[=value]其中,对象名是Shape控件的Name属性;value用来指定控件外观的整数。其设置值如表10-5所示。常数值描述vbShapeRectangle0矩形,默认值vbShapeSquare1正方形vbShapeOval2椭圆形vbShapeCircle3圆形vbShapeRoundedRectangle4圆角矩形vbShapeRoundedSquare5圆角正方形10.1.4Shape控件语法:对象名.Shape[=va2110.2坐标系统对象定位使用的是容器的坐标系,每个容器都有一个坐标系。坐标系由三要素构成:坐标原点,坐标度量单位(刻度),坐标轴的长度与方向。VB提供两类坐标系:默认坐标系和自定义坐标系。默认坐标系中原点(0,0)定位于对象容器用户区的左上角,X轴向右为正方向,Y轴向下为正方向。对象坐标的度量单位由容器对象的ScaleMode属性决定,共有8种形式的单位,默认为Twip。用ScaleMode属性只能改变刻度单位,不能改变坐标原点及坐标轴的方向。10.2坐标系统对象定位使用的是容器的坐标系,每个容器都有一2210.2坐标系统建立自定义坐标系更简单的做法是调用容器对象的Scale方法,语法格式为:[容器对象.]Scale(x1,y1)-(x2,y2)说明:容器对象是指窗体或图片框,省略时默认为当前窗体。(x1,y1)为左上角的坐标,(x2,y2)为右下角的坐标。注意两对括号之间的“-”不代表相减。调用Scale方法后,ScaleLeft和ScaleTop属性分别被设为x1和y1的值。ScaleWidth属性被设为x2与x1之差,ScaleHeight属性被设为y2与y1之差。若省略(x1,y1)-(x2,y2),则恢复默认坐标系统,即以容器对象的左上角为坐标原点。10.2坐标系统建立自定义坐标系更简单的做法是调用容器对象的2310.3相关属性和函数10.3.1与绘图方法有关的属性

10.3.2与颜色有关的函数10.3相关属性和函数10.3.1与绘图方法有关的属性2410.3.1与绘图方法有关的属性1.当前坐标CurrentX,CurrentY属性给出窗体或图片框或打印机在绘图时的当前坐标。这两个属性在设计阶段不能使用,使用CLS方法后,CurrentX、CurrentY属性值为0。2.线宽和线型DrawWidth属性用来返回或设置图形方法输出的线宽。属性值的单位为像素,取值范围为1~32767,默认值为1。DrawStyle属性用来返回或设置图形方法输出的线型,如表10-6所示。该属性的设置值0~4的效果分别与Line控件的BordeStyle属性的1~5对应。若DrawWidth属性设置值大于1,在DrawStyle属性被设置为1~4时,只能画实线。10.3.1与绘图方法有关的属性1.当前坐标2510.3.1与绘图方法有关的属性2.线宽和线型常数设置值描述常数设置值描述VbSolid0实线(缺省)VbDashDotDot4点点划线VbDash1虚线VbInvisible5透明线VbDot2点线VbInsideSolid6内实线VbDashDot3点划线表10-6DrawStyle设置表

10.3.1与绘图方法有关的属性2.线宽和线型常数设置值描述2610.3.1与绘图方法有关的属性2.线宽和线型常数设置值描述常数设置值描述VbFSSolid0实线VbUpwardDiagonal4上斜对角线VbFSTransparent1透明(缺省)VbDownwardDiagonal5下斜对角线VbHorizontalLine2水平直线VbCross6十字线VbVerticalLine3垂直直线VbDiagonalCross7交叉对角线表10-7FillStyle设置表10.3.1与绘图方法有关的属性2.线宽和线型常数设置值描述2710.3.1与绘图方法有关的属性3.填充颜色与填充样式FillColor属性用于为Line和Circle方法生成的矩形和圆填充颜色。FillStyle属性用于为Line和Circle方法生成的矩形和圆指定填充的图案,如表10-7所示。该属性的设置值与Shape控件的FillStyle属性相同。除Form对象外,若FillStyle属性被设置为默认值1(透明),则忽略FillColor属性的设置值。10.3.1与绘图方法有关的属性3.填充颜色与填充样式2810.3.2与颜色有关的函数颜色的使用是绘图操作中的重要环节。在程序运行时,有四种方式可以指定颜色值:使用QBColor函数;使用RGB函数;使用内部常数;直接输入颜色值。1.QBColor函数QBColor函数能够选择早期版本的Basic所规定的16种颜色之一。其语法格式为:QBColor(Color)说明:Color是一个界于0~15的整型数,用于指定颜色。表10-8列出了QBColor函数中Color取值所对应的颜色。10.3.2与颜色有关的函数颜色的使用是绘图操作中的重要环2910.3.2与颜色有关的函数Color取值颜色Color取值颜色0黑8灰1蓝9亮蓝2绿10亮绿3青11亮青4红12亮红5洋红13亮洋红6黄14亮黄7白15亮白表10-8QBColor函数中Color的取值与所对应的颜色10.3.2与颜色有关的函数Color取值颜色Color取3010.3.2与颜色有关的函数2.RGB函数RGB函数用来返回一个Long整数,用来表示一个RGB颜色值。其语法格式为:RGB(red,green,blue)说明:red是必需的,Variant(Integer)。数值范围从0~255,表示颜色的红色成分。green是必需的,Variant(Integer)。数值范围从0~255,表示颜色的绿色成分。blue是必需的,Variant(Integer)。数值范围从0~255,表示颜色的蓝色成分。一个RGB颜色指定红、绿、蓝三原色的成分,生成一个用于显示的特定的颜色。传给RGB的任何参数的值,如果超过255,会被当做255。表10-9列出了常见的标准颜色RGB的值。10.3.2与颜色有关的函数2.RGB函数3110.3.2与颜色有关的函数2.RGB函数颜色redgreenblue黑000红25500绿02550蓝00255青0255255洋红2550255黄2552550白255255255表10-9常见的标准颜色RGB的值10.3.2与颜色有关的函数2.RGB函数颜色redgre3210.4图形方法10.4.1Line方法10.4.2Pset方法10.4.3Circle方法10.4.4PaintPicture方法10.4图形方法10.4.1Line方法3310.4.1Line方法Line方法用于画直线或矩形,其语法格式如下:[对象.]Line[[Step](x1,y1)]-[Step](x2,y2)[,Color][,B[F]]说明:(1)对象:可以是窗体或图片框,若省略则默认为当前窗体。(2)(x1,y1):线段的起点坐标或矩形的左上角坐标。(3)(x2,y2):线段的终点坐标或矩形的右下角坐标。(4)Step:表示采用当前作图位置的相对值。(5)Color:线段或矩形边线的颜色。若省略,则使用对象的ForeColor属性值。(6)B:表示画矩形。(7)F:表示用画矩形的颜色来填充矩形,F必须与关键字B一起使用。如果只用B不用F,则矩形的填充由对象当前的FillColor和FillStyle属性决定。画直线时,省略[B][F]参数;画矩形时,参数B为空心矩形,BF为实心矩形。10.4.1Line方法Line方法用于画直线或矩形,其语3410.4.1Line方法【例10-3】使用Line方法画出如图10-7所示的三角形。首先将窗体的AutoRedraw属性设置为True。然后编写代码如下:PrivateSubForm_Load()Line(100,100)-Step(0,500) '终点采用相对坐标

Line-Step(500,0) '以上次画线的终点为本次画线起点

Line-(100,100) '返回最初的起点EndSub图10-7使用Line方法绘制的三角形10.4.1Line方法【例10-3】使用Line方法画出3510.4.1Line方法【例10-4】用Line方法在窗体上绘制如图10-8所示的同心矩形,每当单击窗体时,矩形的颜色随机变化。编写代码如下:PrivateSubForm_Click()DimCX,CY,F,F1,F2,i '声明变量

CX=ScaleWidth/2 '水平中点

CY=ScaleHeight/2 '垂直中点

DrawWidth=10 '设置线宽

Fori=50To0Step-4 '从外向内画矩形

F=i/50 '坐标偏移量系数。

F1=1-F:F2=1+F '计算矩形左上角和右下角坐标偏移量系数。

ForeColor=QBColor(Int(Rnd*16)) '设置前景色为随机色

Line(CX*F1,CY*F1)-(CX*F2,CY*F2),,BF '使用参数B画矩形,F参数填充颜色

NextiEndSub图10-8使用Line方法绘制同心矩形10.4.1Line方法【例10-4】用Line方法在窗体3610.4.2Pset方法Pset方法用于在窗体、图片框或打印机指定位置上画点,利用Pset方法可以画任意曲线。其语法格式如下:[对象.]Pset[Step](x,y)[,Color]说明:(1)参数(x,y):必需的。x和y是单精度浮点数,即所画点的水平坐标(x轴)和垂直坐标(y轴)。(2)Step:可选,表示采用当前作图位置的相对值。(3)Color:可选,长整型数,为该点指定RGB颜色。可用RGB函数或QBColor函数指定颜色。如果省略Color,则使用当前的ForeColor属性值。如果使用背景颜色,则可清除某个位置上的点。10.4.2Pset方法Pset方法用于在窗体、图片框或打3710.4.2Pset方法【例10-5】绘制正弦曲线和余弦曲线。程序运行结果如图10-9所示。图10-9绘制正弦曲线和余弦曲线10.4.2Pset方法【例10-5】绘制正弦曲线和余弦曲3810.4.2Pset方法本例使用PictureBox控件的Line方法绘制坐标轴,使用其Pset方法描绘曲线。在Form_Load过程中的语句Picture1.Scale(-360,2)-(360,-2),建立了新坐标系:左上角坐标是(-360,2),右下角坐标是(360,-2);坐标原点位于矩形的中心,X轴的正向水平向右,Y轴的正向垂直向上。窗体中除了图片框Picture1外,还需要四个命令按钮:绘制正弦曲线的按钮command1,绘制余弦曲线的按钮command2,清除图片框中的内容的按钮command3,绘制坐标轴的按钮command4。程序代码如下:10.4.2Pset方法本例使用PictureBox控件的3910.4.2Pset方法DimStartAngleAsSingle '存起始角DimEndAngleAsSingle 存终止角DimiAsSingleDimRateAsSingle '存角度弧度转换系数PrivateSubForm_Load() '窗体加载

Picture1.Scale(-360,2)-(360,-2) '建立自定义坐标系

StartAngle=-360 '起始角

EndAngle=360 '终止角

Picture1.CurrentX=-360 '绘图起点坐标

Picture1.CurrentY=0Rate=3.1416/180 '角度弧度转换系数EndSubPrivateSubcommand1_Click() '正弦曲线

Fori=StartAngleToEndAnglePicture1.PSet(i,Sin(i*Rate))NextEndSubPrivateSubcommand2_Click() '余弦曲线

Fori=StartAngleToEndAnglePicture1.PSet(i,Cos(i*Rate))NextEndSubPrivateSubcommand3_Click() '清除

Picture1.ClsEndSubPrivateSubcommand4_Click() '画坐标轴

Picture1.Line(-360,0)-(360,0) 'X轴

Picture1.Line(0,2)-(0,-2) 'Y轴EndSub10.4.2Pset方法DimStartAngleAs4010.4.3Circle方法Circle方法用于画圆、椭圆、圆弧和扇形,其语法格式如下:[对象.]Circle[Step](x,y),r[,color][,起始角][,终止角][,纵横比]说明:(1)对象:可以是窗体、图片框或打印机,省略时默认为当前窗体。(2)Step:表示采用当前作图位置的相对值。(3)(x,y):圆心坐标。(4)r:半径。(5)color:指定圆周边线的颜色。若省略,则使用ForeColor属性值。可以使用所属对象的FillColor和FillStyle属性填充封闭的图形。(6)起始角和终止角:圆弧和扇形通过参数起始角、终止角控制。当起始角、终止角取值在0~2π时为圆弧。当在起始角、终止角的取值前加一负号时,画出扇形,负号表示从圆心到圆弧端点画径向线。(7)纵横比:控制画椭圆,默认值为1,画标准圆。注意:在VB坐标系中,采用逆时针方向绘圆。Circle方法中参数前出现的负号,并不能改变坐标系中旋转的方向。使用Circle方法时,如果想省掉中间的参数,逗号不能省略。例如:画椭圆省掉了颜色、起始角、终止角三个参数,则必须加上四个连续的逗号,它表明这三个参数被省掉了。10.4.3Circle方法Circle方法用于画圆、椭圆4110.4.3Circle方法【例10-6】用Circle方法画圆、椭圆、圆弧和扇形,运行结果如图10-10所示。程序代码:PrivateSubForm_Click()FillStyle=0FillColor=RGB(255,0,0)Circle(1000,1000),450Circle(2000,1000),450,,,,2Circle(3000,1000),450,,3.1415926/2,2*3.1415926Circle(4000,1000),450,,-3.1415926/2,-2*3.1415926EndSub图10-10用Circle方法画圆、椭圆、圆弧和扇形10.4.3Circle方法【例10-6】用Circle方4210.4.4PaintPicture方法PaintPicture方法用来把一个窗体或图片框中已装入的图像文件(如:.BMP、.ICO、.WMF等)取出一部分放到另一个(或是它本身)对象中。该方法可实现在绘图对象内部或对象之间的图像复制操作。其语法格式如下:[对象.]PaintPicture源图像,x1,y1[,Width1][,Height1][,x2,y2][,Width2][,Height2]说明:(1)对象名为一个对象表达式,是控件的Name属性。缺省时指带焦点的窗体。(2)源图像是必需的,是指在源对象中已装入的图像文件,这里指定的必须是源对象的Picture属性。(3)x1,y1是必需的,分别是指在对象上绘制图像的水平、垂直坐标。(4)Width1、Height1是可选的,指定复制的图像在目标对象中的宽度和高度。当指定的宽度或高度大于或小于复制图像的宽度或高度时,复制对象自动被拉伸或压缩;默认时取原始尺寸;当这两个参数为负数时,复制的图像水平或垂直翻转。(5)x2,y2是可选的,分别是指要复制的区域左上角的水平、垂直坐标。默认值均为0。(6)Width2、Height2是可选的,指定源对象中要复制区域的宽度和高度。默认时取源尺寸。10.4.4PaintPicture方法PaintPic4310.4.4PaintPicture方法【例10-7】在窗体上将图片框中的图片水平翻转后平铺。通过给目标宽度参数设置负值可对图片进行水平翻转。在窗体中央放置一个图片框,在该图片框中添加一幅图片。输入以下代码:PrivateSubForm_Click()Picture1.Visible=FalseForm1.AutoRedraw=True DimiAsInteger,jAsIntegerDimxAsInteger,yAsIntegerx=ScaleWidth\Picture1.Width+1'根据窗体大小确定行、列数

y=ScaleHeight\Picture1.Height+1Fori=0Toy '行

Forj=0Tox '列

PaintPicturePicture1.Picture,j*Picture1.Width,i*Picture1.Height,-Picture1.Width,Picture1.HeightNextjNextiEndSub10.4.4PaintPicture方法【例10-7】在4410.4.4PaintPicture方法图10-11例10-7程序布局及运行结果10.4.4PaintPicture方法图10-11例45汇报结束谢谢大家!请各位批评指正汇报结束谢谢大家!请各位批评指正46第十章节图形的控制跟处理课本新第十章节图形的控制跟处理课本新第十章节图形的控制跟处理课本新10.1图形控件VB提供的与绘图有关的标准控件有图片框(PictureBox)、图像框(Image)、直线(Line)和形状(Shape)。Image、Line、Shape控件需要较少的系统资源,且包含PictureBox中可用的属性、方法和事件子集,因此他们比PictureBox控件显示速度快些。PictureBox和Image控件可以显示位图、图标、图元文件中的图形,也可处理GIF和JPEG格式的图形文件。第十章节图形的控制跟处理课本新第十章节图形的控制跟处理课本新4710.1图形控件VB提供的与绘图有关的标准控件有图片框(PictureBox)、图像框(Image)、直线(Line)和形状(Shape)。Image、Line、Shape控件需要较少的系统资源,且包含PictureBox中可用的属性、方法和事件子集,因此他们比PictureBox控件显示速度快些。PictureBox和Image控件可以显示位图、图标、图元文件中的图形,也可处理GIF和JPEG格式的图形文件。10.1图形控件VB提供的与绘图有关的标准控件有图片框(P4810.1.1PictureBox控件图片框(PictureBox)控件的主要作用是在窗体的指定位置为用户显示图片,也可作为其它控件的容器、显示Print方法输出的文本或显示图形方法输出的图形。实际显示的图片由Picture属性决定。在工具箱面板中,PictureBox控件的图标如图10-1所示。图10-1PictureBox控件的图标

10.1.1PictureBox控件图片框(Picture4910.1.1PictureBox控件1、主要属性基本属性Name标识唯一的对象,运行时为只读Height、Width、Top、Left标识控件在容器上显示的尺寸及位置Enabled决定对象运行时是否有效。True:运行时有效;False:运行时无效Visible决定对象运行时是否可见。True:运行时可见;False:运行时不可见Font设置与字体有关的所有内容。包括FontName、FontSize、FontBold、FontItalic、FontUnderline等特有属性PicturePicture属性用来返回或设置控件中要显示的图片,可以通过属性窗口进行设置。如果要在程序运行过程中载入图片,常常使用LoadPicture函数AutoSizeAutoSize属性用于设置是否能自动调整图片框大小,以完整显示装入的图片。值为True时,自动调整大小,以显示装入的整个图片;值为False时,保持控件大小,装入的图片超出的部分被截除。10.1.1PictureBox控件1、主要属性基Nam5010.1.1PictureBox控件2、加载图片(1)在设计阶段加载图片文件有两种方法:1)通过设置属性窗口中的Picture属性来加载图片,步骤如下:在窗体上建立一个图片框保持图片框为激活的控件,在属性窗口中找到Picture属性,单击该属性条,其右侧出现“…”按钮单击“…”按钮,屏幕显示“加载图片”对话框,从相应文件夹中找到所需加载的图片,单击打开,图片即被加载2)利用剪贴板加载用绘图或图像处理软件完成图形处理,并将图形复制到剪贴板中切换到VB,在窗体上建立图片框,并保持为激活状态使用“粘贴”命令,即完成图片加载10.1.1PictureBox控件2、加载图片(1)在5110.1.1PictureBox控件2、加载图片(2)在运行阶段通过LoadPicture函数加载图片,格式如下:对象名.Picture=LoadPicture("图片文件名")例如:加载图片:Picture1.Picture=LoadPicture("C:\Pic\MyPic1.gif")10.1.1PictureBox控件2、加载图片(2)在5210.1.1PictureBox控件3.卸载图片和复制图片(1)卸载图片卸载图片文件也有两种方法:一种是在设计阶段卸载,另一种是在运行阶段卸载。在设计阶段设置属性窗口中的Picture属性为None,在运行阶段通过LoadPicture函数卸载图片,格式如下:对象名.Picture=LoadPicture()(2)复制图片复制图片可以利用Picture属性和LoadPicture()函数来完成,如:Picture1.Picture=LoadPicture("C:\Pic\MyPic1.gif")Picture2.Picture=Picture1.Picture10.1.1PictureBox控件3.卸载图片和复制图片5310.1.1PictureBox控件4.图形文件的保存格式:SavePicturepicture,stringexpression说明:picture:图片框对象或其他对象的picture属性Stringexpression:文件名10.1.1PictureBox控件4.图形文件的保存格式5410.1.1PictureBox控件5.Paint事件在一个对象被移动或放大之后,或在一个覆盖该对象的窗体被移开之后,该对象部分或全部暴露时,此事件发生。如果AutoRedraw属性被设置为True,重新绘图会自动进行,就不需要Paint事件。10.1.1PictureBox控件5.Paint事件在一5510.1.1PictureBox控件6.常用方法图片框中常使用Cls方法和Print方法。【例10-1】在C:\新建一个文件夹stu1,将我的文档中的示例图片Sunset.JPG复制到stu1文件夹下。再启动VB,在stu1文件夹下新建一个工程文件,其布局与运行结果如图10-2所示。图10-2控件布局图及运行结果图

10.1.1PictureBox控件6.常用方法图片框中常5610.1.1PictureBox控件(1)控件选择:两个标签控件:Label1、Label2;两个图片框控件:Picture1、Picture2;三个命令按钮:Cmd1、Cmd2、Cmd3(2)控件属性设置:控件名称属性Caption属性标签Label1Caption源图标签Label2Caption复制图片图片框Picture1PictureNone图片框Picture2PictureNone命令按钮Cmd1Caption加载图片命令按钮Cmd2Caption复制图片命令按钮Cmd3Caption清除图片10.1.1PictureBox控件(1)控件选择:两个标5710.1.1PictureBox控件(3)代码编写:编写命令按钮Cmd1的Click事件:PrivateSubCmd1_Click()Picture1.Picture=LoadPicture(App.Path&"\Sunset.JPG")EndSub

编写命令按钮Cmd2的Click事件:PrivateSubCmd2_Click() Picture2.Picture=Picture1.PictureEndSub编写命令按钮Cmd3的Click事件:PrivateSubCmd3_Click()Picture1.Picture=LoadPicture()Picture2.Picture=LoadPicture()EndSub说明:App.Path用于取得当前工程文件所在的文件夹路径,App.Path&"\Sunset.JPG"指明了Sunset.JPG文件的物理位置。这种方法常被应用,可提高程序的可移植性。10.1.1PictureBox控件(3)代码编写:5810.1.2Image控件图像框(Image)控件是一个简单易用的显示图像文件的控件,其使用的系统资源较少而且显示速度较快,它可以自动调整自身的大小以适应图像大小,或者伸缩图像的大小使图像适合图像框控件的大小。Image加载图片的方法和使用图片的文件格式与PictureBox相同。在工具箱面板中,Image控件的图标如图10-3所示。图10-3Image控件的图标10.1.2Image控件图像框(Image)控件是一个简5910.1.2Image控件1.主要属性基本属性Name标识唯一的对象,运行时为只读Height、Width、Top、Left标识控件在容器上显示的位置及尺寸Enabled决定对象运行时是否有效。True:运行时有效;False:运行时无效Visible决定对象运行时是否可见。True:运行时可见;False:运行时不可见特有属性Picture可通过属性窗口进行设置,也可以在程序中进行设置。VB6.0支持位图文件、图标文件、JPEG及GIF压缩位图文件Stretch自动调整图像框中图形内容的大小。False:图像框可以自动改变大小以适应其中的图形True:图形自动调整尺寸以适应图像框的大小。10.1.2Image控件1.主要属性基Name标识唯6010.1.2Image控件2.常用事件图像框可以响应Click和DblClick事件3.Image与PictureBox的区别(1)PictureBox是“容器”控件,可以作为父控件,而Image不能作为父控件。也就是说,在PictureBox中,可以包含其它控件,作为他的子控件,如果移动PictureBox,则框中的控件也随之一起移动,并且与PictureBox的相对位置保持不变;当PictureBox的大小改变时,这些子控件的图片控制的相对位置保持不变,PictureBox内的子控件也不能移到PictureBox外。(2)PictureBox可以通过Print方法接收文本,并可接收由像素组成的图形,而Image不能接受用Print方法输入的信息,也不能用绘图方法在Image上绘制图形。(3)Image比PictureBox占用内存少,显示速度快。(4)Image没有AutoSize属性,但可以实现图形缩放10.1.2Image控件2.常用事件6110.1.2Image控件【例10-2】在C:\新建一个文件夹stu2,将我的文档中的示例图片Sunset.JPG复制到stu2文件夹下。再启动VB,在stu2文件夹下新建一个工程文件,其布局与运行结果如图10-4所示。图10-4控件布局图及运行结果图

10.1.2Image控件【例10-2】在C:\新建一个文6210.1.2Image控件(1)控件选择:1个图像框Image1;2个命令按钮:Command1、Command2(2)控件属性设置控件名称属性属性值图像框Image1StretchTrue命令按钮Command1Caption放大命令按钮Command2Caption缩小10.1.2Image控件(1)控件选择:1个图像框Ima6310.1.2Image控件(3)代码编写:编写命令按钮Command1的Click事件:PrivateSubCommand1_Click()IfImage1.Height<2000OrImage1.Width<4000ThenImage1.Height=Image1.Height+500Image1.Width=Image1.Width+500EndIfEndSub编写命令按钮Command2的Click事件:PrivateSubCommand2_Click()IfImage1.Height>1000OrImage1.Width>2000ThenImage1.Height=Image1.Height-500Image1.Width=Image1.Width-500EndIfEndSub编写窗体Form1的Load事件:PrivateSubForm_Load() Image1.Picture=LoadPicture(App.Path&"\Sunset.JPG")EndSub 10.1.2Image控件(3)代码编写:6410.1.3Line控件Line控件可用来在窗体、框架或图片框中创建各种直线。既可以在设计时通过设置直线的端点坐标来画直线,又可以在程序运行时动态地改变直线的各种属性。Line控件主要属性是BorderWidth、BorderStyle和BorderColor属性,以及X1、Y1和X2、Y2属性。BorderWidth确定线的宽度,BorderStyle确定线的形状,BorderColor确定线的颜色。X1、Y1和X2、Y2属性控制线的两个端点的位置。程序运行时,不能使用Move方法移动Line控件,但是可以通过改变X1、Y1、X2、Y2属性来移动或调整直线。在工具箱面板中,Line控件的图标如图10-5所示。图10-5Line控件的图标

10.1.3Line控件Line控件可用来在窗体、框架或6510.1.4Shape控件Shape控件可用来在窗体、框架或图片框中创建矩形、正方形、椭圆形、圆形、圆角矩形或圆角正方形。通过设置Shape控件的Shape属性来实现所需要的形状,以控制Shape控件的外观。在工具箱面板中,Shape控件的图标如图10-6所示。图10-6Shape控件的图标10.1.4Shape控件Shape控件可用来在窗体、框6610.1.4Shape控件语法:对象名.Shape[=value]其中,对象名是Shape控件的Name属性;value用来指定控件外观的整数。其设置值如表10-5所示。常数值描述vbShapeRectangle0矩形,默认值vbShapeSquare1正方形vbShapeOval2椭圆形vbShapeCircle3圆形vbShapeRoundedRectangle4圆角矩形vbShapeRoundedSquare5圆角正方形10.1.4Shape控件语法:对象名.Shape[=va6710.2坐标系统对象定位使用的是容器的坐标系,每个容器都有一个坐标系。坐标系由三要素构成:坐标原点,坐标度量单位(刻度),坐标轴的长度与方向。VB提供两类坐标系:默认坐标系和自定义坐标系。默认坐标系中原点(0,0)定位于对象容器用户区的左上角,X轴向右为正方向,Y轴向下为正方向。对象坐标的度量单位由容器对象的ScaleMode属性决定,共有8种形式的单位,默认为Twip。用ScaleMode属性只能改变刻度单位,不能改变坐标原点及坐标轴的方向。10.2坐标系统对象定位使用的是容器的坐标系,每个容器都有一6810.2坐标系统建立自定义坐标系更简单的做法是调用容器对象的Scale方法,语法格式为:[容器对象.]Scale(x1,y1)-(x2,y2)说明:容器对象是指窗体或图片框,省略时默认为当前窗体。(x1,y1)为左上角的坐标,(x2,y2)为右下角的坐标。注意两对括号之间的“-”不代表相减。调用Scale方法后,ScaleLeft和ScaleTop属性分别被设为x1和y1的值。ScaleWidth属性被设为x2与x1之差,ScaleHeight属性被设为y2与y1之差。若省略(x1,y1)-(x2,y2),则恢复默认坐标系统,即以容器对象的左上角为坐标原点。10.2坐标系统建立自定义坐标系更简单的做法是调用容器对象的6910.3相关属性和函数10.3.1与绘图方法有关的属性

10.3.2与颜色有关的函数10.3相关属性和函数10.3.1与绘图方法有关的属性7010.3.1与绘图方法有关的属性1.当前坐标CurrentX,CurrentY属性给出窗体或图片框或打印机在绘图时的当前坐标。这两个属性在设计阶段不能使用,使用CLS方法后,CurrentX、CurrentY属性值为0。2.线宽和线型DrawWidth属性用来返回或设置图形方法输出的线宽。属性值的单位为像素,取值范围为1~32767,默认值为1。DrawStyle属性用来返回或设置图形方法输出的线型,如表10-6所示。该属性的设置值0~4的效果分别与Line控件的BordeStyle属性的1~5对应。若DrawWidth属性设置值大于1,在DrawStyle属性被设置为1~4时,只能画实线。10.3.1与绘图方法有关的属性1.当前坐标7110.3.1与绘图方法有关的属性2.线宽和线型常数设置值描述常数设置值描述VbSolid0实线(缺省)VbDashDotDot4点点划线VbDash1虚线VbInvisible5透明线VbDot2点线VbInsideSolid6内实线VbDashDot3点划线表10-6DrawStyle设置表

10.3.1与绘图方法有关的属性2.线宽和线型常数设置值描述7210.3.1与绘图方法有关的属性2.线宽和线型常数设置值描述常数设置值描述VbFSSolid0实线VbUpwardDiagonal4上斜对角线VbFSTransparent1透明(缺省)VbDownwardDiagonal5下斜对角线VbHorizontalLine2水平直线VbCross6十字线VbVerticalLine3垂直直线VbDiagonalCross7交叉对角线表10-7FillStyle设置表10.3.1与绘图方法有关的属性2.线宽和线型常数设置值描述7310.3.1与绘图方法有关的属性3.填充颜色与填充样式FillColor属性用于为Line和Circle方法生成的矩形和圆填充颜色。FillStyle属性用于为Line和Circle方法生成的矩形和圆指定填充的图案,如表10-7所示。该属性的设置值与Shape控件的FillStyle属性相同。除Form对象外,若FillStyle属性被设置为默认值1(透明),则忽略FillColor属性的设置值。10.3.1与绘图方法有关的属性3.填充颜色与填充样式7410.3.2与颜色有关的函数颜色的使用是绘图操作中的重要环节。在程序运行时,有四种方式可以指定颜色值:使用QBColor函数;使用RGB函数;使用内部常数;直接输入颜色值。1.QBColor函数QBColor函数能够选择早期版本的Basic所规定的16种颜色之一。其语法格式为:QBColor(Color)说明:Color是一个界于0~15的整型数,用于指定颜色。表10-8列出了QBColor函数中Color取值所对应的颜色。10.3.2与颜色有关的函数颜色的使用是绘图操作中的重要环7510.3.2与颜色有关的函数Color取值颜色Color取值颜色0黑8灰1蓝9亮蓝2绿10亮绿3青11亮青4红12亮红5洋红13亮洋红6黄14亮黄7白15亮白表10-8QBColor函数中Color的取值与所对应的颜色10.3.2与颜色有关的函数Color取值颜色Color取7610.3.2与颜色有关的函数2.RGB函数RGB函数用来返回一个Long整数,用来表示一个RGB颜色值。其语法格式为:RGB(red,green,blue)说明:red是必需的,Variant(Integer)。数值范围从0~255,表示颜色的红色成分。green是必需的,Variant(Integer)。数值范围从0~255,表示颜色的绿色成分。blue是必需的,Variant(Integer)。数值范围从0~255,表示颜色的蓝色成分。一个RGB颜色指定红、绿、蓝三原色的成分,生成一个用于显示的特定的颜色。传给RGB的任何参数的值,如果超过255,会被当做255。表10-9列出了常见的标准颜色RGB的值。10.3.2与颜色有关的函数2.RGB函数7710.3.2与颜色有关的函数2.RGB函数颜色redgreenblue黑000红25500绿02550蓝00255青0255255洋红2550255黄2552550白255255255表10-9常见的标准颜色RGB的值10.3.2与颜色有关的函数2.RGB函数颜色redgre7810.4图形方法10.4.1Line方法10.4.2Pset方法10.4.3Circle方法10.4.4PaintPicture方法10.4图形方法10.4.1Line方法7910.4.1Line方法Line方法用于画直线或矩形,其语法格式如下:[对象.]Line[[Step](x1,y1)]-[Step](x2,y2)[,Color][,B[F]]说明:(1)对象:可以是窗体或图片框,若省略则默认为当前窗体。(2)(x1,y1):线段的起点坐标或矩形的左上角坐标。(3)(x2,y2):线段的终点坐标或矩形的右下角坐标。(4)Step:表示采用当前作图位置的相对值。(5)Color:线段或矩形边线的颜色。若省略,则使用对象的ForeColor属性值。(6)B:表示画矩形。(7)F:表示用画矩形的颜色来填充矩形,F必须与关键字B一起使用。如果只用B不用F,则矩形的填充由对象当前的FillColor和FillStyle属性决定。画直线时,省略[B][F]参数;画矩形时,参数B为空心矩形,BF为实心矩形。10.4.1Line方法Line方法用于画直线或矩形,其语8010.4.1Line方法【例10-3】使用Line方法画出如图10-7所示的三角形。首先将窗体的AutoRedraw属性设置为True。然后编写代码如下:PrivateSubForm_Load()Line(100,100)-Step(0,500) '终点采用相对坐标

Line-Step(500,0) '以上次画线的终点为本次画线起点

Line-(100,100) '返回最初的起点EndSub图10-7使用Line方法绘制的三角形10.4.1Line方法【例10-3】使用Line方法画出8110.4.1Line方法【例10-4】用Line方法在窗体上绘制如图10-8所示的同心矩形,每当单击窗体时,矩形的颜色随机变化。编写代码如下:PrivateSubForm_Click()DimCX,CY,F,F1,F2,i '声明变量

CX=ScaleWidth/2 '水平中点

CY=ScaleHeight/2 '垂直中点

DrawWidth=10 '设置线宽

Fori=50To0Step-4 '从外向内画矩形

F=i/50 '坐标偏移量系数。

F1=1-F:F2=1+F '计算矩形左上角和右下角坐标偏移量系数。

ForeColor=QBColor(Int(Rnd*16)) '设置前景色为随机色

Line(CX*F1,CY*F1)-(CX*F2,CY*F2),,BF '使用参数B画矩形,F参数填充颜色

NextiEndSub图10-8使用Line方法绘制同心矩形10.4.1Line方法【例10-4】用Line方法在窗体8210.4.2Pset方法Pset方法用于在窗体、图片框或打印机指定位置上画点,利用Pset方法可以画任意曲线。其语法格式如下:[对象.]Pset[Step](x,y)[,Color]说明:(1)参数(x,y):必需的。x和y是单精度浮点数,即所画点的水平坐标(x轴)和垂直坐标(y轴)。(2)Step:可选,表示采用当前作图位置的相对值。(3)Color:可选,长整型数,为该点指定RGB颜色。可用RGB函数或QBColor函数指定颜色。如果省略Color,则使用当前的ForeColor属性值。如果使用背景颜色,则可清除某个位置上的点。10.4.2Pset方法Pset方法用于在窗体、图片框或打8310.4.2Pset方法【例10-5】绘制正弦曲线和余弦曲线。程序运行结果如图10-9所示。图10-9绘制正弦曲线和余弦曲线10.4.2Pset方法【例10-5】绘制正弦曲线和余弦曲8410.4.2Pset方法本例使用PictureBox控件的Line方法绘制坐标轴,使用其Pset方法描绘曲线。在Form_Load过程中的语句Picture1.Scale(-360,2)-(360,-2),建立了新坐标系:左上角坐标是(-360,2),右下角坐标是(360,-2);坐标原点位于矩形的中心,X轴的正向水平向右,Y轴的正向垂直向上。窗体中除了图片框Picture1外,还需要四个命令按钮:绘制正弦曲线的按钮command1,绘制余弦曲线的按钮command2,清除图片框中的内容的按钮command3,绘制坐标轴的按钮command4。程序代码如下:10.4.2Pset方法本例使用PictureBox控件的8510.4.2Pset方法DimStartAngleAsSingle '存起始角DimEndAngleAsSingle 存终止角DimiAsSingleDimRateAsSingle '存角度弧度转换系数PrivateSubForm_Load() '窗体加载

Picture1.Scale(-360,2)-(360,-2) '建立自定义坐标系

StartAngle=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论