首页 第11章VB设计图形应用程序

第11章VB设计图形应用程序

举报
开通vip

第11章VB设计图形应用程序第十一章设计图形应用程序坐标体系颜色绘图方法形状控件打印文字和图形11.1坐标和颜色X值:是沿X轴点的位置,窗体中最左端是缺省位置0Y值:是沿Y轴点的位置,窗体中最上端是缺省位置0X,Y的值可以小于0,也可以大于容器宽度或高度相对于Form1(0,0)相对于Form1(1200,800)相对于Frame1(0,0)坐标值的刻度缺省使用缇(Twip)为测量单位。缇是打印机的一磅的1/20(1440缇等于一英寸;567缇等于一厘米)。这些测量值指示对象打印后的大小。利用缇可以精确地控制图形打印输出的质量。通过设置控件的...

第11章VB设计图形应用程序
第十一章设计图形应用程序坐标体系颜色绘图方法形状控件打印文字和图形11.1坐标和颜色X值:是沿X轴点的位置,窗体中最左端是缺省位置0Y值:是沿Y轴点的位置,窗体中最上端是缺省位置0X,Y的值可以小于0,也可以大于容器宽度或高度相对于Form1(0,0)相对于Form1(1200,800)相对于Frame1(0,0)坐标值的刻度缺省使用缇(Twip)为测量单位。缇是打印机的一磅的1/20(1440缇等于一英寸;567缇等于一厘米)。这些测量值指示对象打印后的大小。利用缇可以精确地控制图形打印输出的质量。通过设置控件的ScaleMode属性,可以采用不同的刻度来表示坐标值ScaleMode属性每个可见控件都有ScaleMode属性,可以取以下常量值:vbUser:0,用户自定义。若直接设置了ScaleWidth、ScaleHeight、ScaleTop或ScaleLeft,则ScaleMode属性自动设为0vbTwips(缺省值):1,缇vbPoints:2,磅,72磅等于一英寸vbPixels:3,像素。像素是监视器或打印机分辨率的最小单位,每英寸里像素的数目由设备的分辨率决定vbCharacters:4,字符。打印时,一个字符有1/6英寸高、1/12英寸宽vbInchs:5,英寸vbMillimeters:6,毫米vbCentimeters:7,厘米不同刻度的转换ScaleX和ScaleY方法:用来将水平坐标或垂直坐标值从一种刻度模式转换为另一种刻度模式。返回转换后的刻度值。[object.]ScaleX(value[,fromScale[,toScale]])[object.]ScaleY(value[,fromScale[,toScale]])Value:是给定的一个坐标值(如控件的宽度或高度);fromScale:指定从哪一种坐标系统转换(刻度常量);如省略,则默认value的刻度模式是HIMETRIC(0.01毫米)。toScale:指定要转换到哪一种坐标系统(刻度常量)。省略,则取object的刻度模式(即ScaleMode属性指定的刻度模式)。如将1厘米的宽度转换为以缇为单位的宽度数并输出:Debug.PrintForm1.ScaleX(1,vbCentimeters,vbTwips) '输出结果为566.9286颜色指定颜色有四种方式:使用RGB函数,该函数有三个参数,分别取值0-255;使用QBColor函数,该函数有一个参数,取值0-15,16种MicrosoftQuickBasic颜色中的一种;使用内部描述颜色的常量,如vbRed;直接输入一种颜色值。调色板颜色值:正常的RGB颜色的有效范围,是从0到16,777,215(&HFFFFFF&)。即可以用十六进制数按照下述语法来指定颜色:&HBBGGRR&系统颜色值:最高位设置为1时,颜色值不再代表RGB颜色,而是从Windows“控制面板”指定的系统环境范围颜色。这些数值对应的系统颜色范围是从&H80000000到&H80000015。11.2绘图方法VB提供有以下创建图形的方法,这些图形方法适用于窗体和图片框控件。Cls:清除所有图形和调用Print方法所作的输出PSet:设置屏幕指定位置像素的颜色Line:画线、矩形、或填充框Circle:画圆、椭圆、或圆弧Point:返回指定点的颜色值PaintPicture:在任意位置画出图形使用Pset方法画点[object.]PSet(x,y)[,color]x和y参数是单精度参数,所以它们可以接受整数或分数的输入,可以适应不同的坐标系。color参数指定点的颜色,该参数可以使用任意一种方法来指定。如果没有指定color参数,PSet将像素设置为前景色(object对象的ForeColor属性)。下述语句在当前窗体、MyForm窗体和Picture1图片框上设置各种点: PSet(10.75,50.33) MyForm.PSet(230,1000) Picture1.PSet(1.5,3.2) PSet(50,75),RGB(0,0,255)Pset方法示例【例】编写程序,在窗体上随机画出各种颜色的点。SubForm_Click()DimRAsInteger,GAsInteger,BAsIntegerDimXPosAsInteger,YPosAsIntegerDo'设置红、绿、兰随机颜色值,赋值后会自动转换为整数R=255*RndG=255*RndB=255*Rnd'设置水平和垂直位置的随机坐标值XPos=Rnd*ScaleWidthYPos=Rnd*ScaleHeight'用PSet画点PSet(XPos,YPos),RGB(R,G,B)DoEventsLoopEndSubRnd函数:生成一个小于1大于等于0的随机数DoEvents:因为循环没有给定结束条件(死循环),程序启动后将无法正常中止,DoEvents函数允许操作系统获取控制权以处理其他事件。点的尺寸PSet方法所画点的尺寸取决于对象的DrawWidth属性值。缺省时DrawWidth为1,PSet就将一个像素的点设置为指定颜色。当DrawWidth大于1,则点的尺寸将变大,使其中心位于指定坐标。这样只要DrawWidth足够大,PSet就可以画各种颜色的实心圆了。Form1.DrawWidth=Rnd*50+1擦除点擦除一点,只要把其颜色设置为背景色即可,如: Form1.PSet(50,75),Form1.BackColor指定点的坐标有两种方法来指定点的坐标:使用参数(x,y)指定点的坐标。如:PSet(20,20)当在参数(x,y)前面加上Step关键字后,就是相对定位,(x,y)指定的就是相对当前坐标的偏移量。如:PsetStep(20,20)当前的坐标点就是调用图形方法或Print方法所画最后点的位置,该位置由对象的CurrentX和CurrentY属性保存,它们的初始值都为0。比如PSet可相对最后所画点的位置向下画点: Fori=0to1000 PSetStep(1,0) Next因为是循环画点,所以上述代码可以得到一条水平线。 使用Line方法画线Line方法可以画出一条直线,指定直线的起点、终点和颜色,语法为: [object.]Line[(x1,y1)]–(x2,y2)[,color]第一对坐标为起点,第二对坐标为终点。 Line(0,0)-(ScaleWidth,ScaleHeight) ‘从左上角到右下角的对角线 Line(0,ScaleHeight)-(ScaleWidth,0) ‘从左下角到右上角的对角线其中第一对坐标(x1,y1)是可选的。如果省略,将把该对象的当前坐标位置(CurrentX和CurrentY属性)作为线的起点。Color如果省略,则使用对象的ForeColor属性为线的颜色。与PSet方法一样,Line方法也支持使用关键字Step来指定相对位置。假设当前坐标为(500,500): Line-(1000,0) '从(500,500)到(1500,500)的一条水平线 Line-Step(0,1000) ‘从(1500,500)到(1500,1500)的一条垂直线 LineStep(0,1000)-Step(200,200) '从(1500,2500)到(1700,2700)的斜线使用Line方法画矩形一个很简单的画矩形的方法。当在Line方法中的最后添加“B”选项时,就会以指定的两点为矩形的对角点,画一个矩形。如: Line(500,500)–(1500,1000),vbRed,B 或 Line(500,500)–Step(1000,500),,B注意:如果color参数省略的话,则在“B”之前要有两个逗点,参数值可以省略,但参数位置要保留。填充矩形使用Line方法还可以指定对矩形进行填充,有两种填充方式:颜色填充 Line(500,500)–(1500,1000),vbRed,BF 以上代码绘制一个红色的方块图案填充 FillStyle=1 Line(500,500)–(1500,1000),vbRed,B 需要先指定FillStyle属性,即矩形内部图案填充方式填充图案的选择FillStyle属性的取值和填充效果vbFSSolid:0,实线vbFSTransparent(缺省值):1,透明vbHorizontalLine:2,水平直线vbVerticalLine:3,垂直直线vbUpwardDiagonal:4,上斜对角线vbDownwardDiagonal:5,下斜对角线vbCross:6,十字线vbDiagonalCross:7,交叉对角线以上填充的图案以线条为主,那么如何指定线条的颜色呢?对象的FillColor属性充当此任。该属性缺省为黑色,所以如果不更改的话,填充的将都是黑色线条。填充矩形示例【例】编程在窗体中显示所有的填充图案,并使用不同的填充颜色。 SubForm_Click() DimiAsInteger Fori=0To7 Form1.FillStyle=i Form1.FillColor=QBColor(i) Line(i*600,500)-Step(600,600),vbRed,B Next EndSub指定线型DrawWidth设置为1时,DrawStyle可以设置以下线型:vbFSSolid(缺省值):0,实线vbDash:1,虚线vbDot:2,点线vbDashDot:3,点划线vbDashDotDot:4,双点划线vbInvisible:5,无线vbInsideSolid:6,内收实线指定线宽通过设置DrawWidth属性可以控制画出的线的宽度,值越大,线越宽(整数值)【例】利用Line方法在窗口上随意画画,可以指定颜色和线宽。鼠标按下并移动开始划线,鼠标抬起的时候不划,需要响应鼠标按下和移动两个事件。颜色可以利用通用对话框CommonDialog控件来选择线宽用滚动条设置。绘图程序示例'设置线宽PrivateSubHScroll1_Change()Form1.DrawWidth=HScroll1.ValueEndSub '设置线条颜色PrivateSubcmdColor_Click()CommonDialog1.ShowColorForm1.ForeColor=CommonDialog1.ColorEndSub '擦除窗体PrivateSubcmdClear_Click()Me.ClsEndSub绘图程序示例'鼠标按下后,设置绘图起始坐标PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)CurrentX=XCurrentY=YEndSub '鼠标按下的同时并移动,绘制从(CurrentX,CurrentY)到(X,Y)的线条PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=1ThenLine-(X,Y)EndSub使用Circle方法画圆Circle方法用于画圆的语法是: [object.]Circle[Step](x,y),radius[,color]其中(x,y)是圆心坐标,radius指定半径长度,例如,下面语句将画出一个以(1000,1000)为圆心、500为半径的红色空心圆: Circle(1000,1000),500,vbRed和Line方法一样,在设置了对象的FillStyle和FillColor属性后,Circle方法就能画实心圆和其它填充效果的圆。例如画一个红色的实心圆: FillStyle=vbSolid FillColor=vbRed Circle(1000,1000),500,vbRed画圆示例【例】从窗口中心向外不停地画同心圆,直到充满。PrivateSubTimer1_Timer()StaticRadiusDimCX,CY,LimitScaleMode=vbPixelsCX=ScaleWidth/2CY=ScaleHeight/2Limit=IIf(CX>CY,CY,CX)Circle(CX,CY),Radius,RGB(Rnd*255,Rnd*255,Rnd*255)Radius=Radius+1IfRadius>LimitThenForm1.ClsRadius=0EndIfEndSub如果改变线宽,怎么办?Circle方法画椭圆圆的纵横轴比例不等于1,就是椭圆。Circle方法完整的语法是:Circle[Step](x,y),radius,[color],[start],[end][,aspect]其中参数start和end是可选的,可用于画圆弧,画椭圆时省略这两个参数,但是逗号是不能省的。如果画椭圆,最后一个参数aspect是不能省略的,所以更明确的椭圆的语法是:Circle[Step](x,y),radius,[color],,,aspectaspect参数:指定了椭圆的垂直直径和水平直径的比例。该参数是正浮点数。当aspect参数小于0时,椭圆沿水平轴线拉长;相反aspect参数大于1时,则沿垂直轴线拉长。Radius参数:椭圆有两个半径——水平方向的x半径和垂直方向的y半径,但在Circle语句中只使用了一个参数radius对应椭圆的长轴。也就是说,当aspect参数小于1的话,radius指的是水平方向的半径,如果aspect参数大于或等于1的话,则radius指的是垂直方向的半径。画椭圆示例【例】在任意大小的窗口上画出最大的椭圆,并且椭圆随着窗口变化而变化。PrivateSubForm_Resize()Dimvar1,var2Form1.ClsScaleMode=vbPixelsvar2=ScaleHeight/ScaleWidthIfvar2<1Thenvar1=ScaleWidth/2-1Elsevar1=ScaleHeight/2-1EndIfCircle(ScaleWidth/2,ScaleHeight/2),var1,vbRed,,,var2EndSubCircle方法画圆弧圆弧就是截取圆或椭圆中指定的一部分。Circle[Step](x,y),radius,[color],[start],[end][,aspect]start和end参数指定的就是圆或椭圆中的两个角度,Circle方法按照逆时针顺序画出这两个角度之间的弧线。圆的角度取值范围是-2π~2πCircle(1000,1000),800,vbRed,0,Pi/2Circle(3000,1000),800,vbRed,*Pi,3*Pi/2Circle(1000,1000),800,vbRed,-2*Pi,-Pi/2Circle(3000,1000),800,vbRed,-Pi,-3*Pi/2使用PaintPicture方法显示图片PaintPicture方法不仅可以显示图像,还可以完成各种图像效果,包括缩放、滚动、全景、平铺以及多种颜色效果。实际上PaintPicture方法可以理解为从源控件到目标控件的图像的复制,[object.]PaintPicturepic,destX,destY[,destWidth[,destHeight [,srcX[,srcY[,srcWidth[,srcHeight[,Opcode]]]]]]]Object:指的是目标控件,可以是窗体、图片框或Printer对象,这些控件都是图片显示的容器。pic参数:一个Picture对象,是要绘制到目标控件上的图形源,它可以由窗体或PictureBox控件的Picture属性指定。destX和destY参数:图像出现在目标控件中的坐标位置。destWidth和destHeight参数:可选,图象在目标控件中的大小。srcX和srcY参数:可选,源控件图像要复制的区域的起始坐标。destWidth和destHeight参数:可选,图像复制区的宽度和高度。Opcode参数:可选,定义当在目标控件上绘图时,在图像上执行的位操作。如反转等。PaintPicture方法示例【例】以不同效果将图片显示在窗体上。PaintPicture方法示例'整个图像以原始尺寸复制到窗体上PrivateSubCommand1_Click()ClsPaintPicturePicture1.Picture,0,0EndSub'复制原始图像的指定矩形区域到窗体上PrivateSubCommand3_Click()ClsPaintPicturePicture1.Picture,0,0,,,1000,1000,500,500EndSubPaintPicture方法示例'放大1倍显示整个图像PrivateSubCommand2_Click()ClsPaintPicturePicture1.Picture,0,0,_ ScaleX(Picture1.Picture.Width,vbHimetric,vbTwips)*2,_ ScaleY(Picture1.Picture.Height,vbHimetric,vbTwips)*2EndSub '整个图像以反转复制到窗体上PrivateSubCommand4_Click()ClsPaintPicturePicture1.Picture,0,0,,,,,,,vbNotSrcCopyEndSub11.3图形控件VB 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 控件可以绘制简单的图形:直线控件Line形状控件Shape:方形、圆形直线控件(Line)通过设置Line控件的属性,可以定义直线的位置、长度、颜色和样式等外观。但是Line控件功能有限。1、BorderStyle属性:提供六种直线样式:透明、实线、虚线、点线、点划线、双点划线和内实线。2、BorderColor属性:指定直线的颜色。3、移动和调整线段长度在运行时,不能用Move方法移动直线,只可更改直线控件的X1、X2、Y1和Y2属性来移动控件或调整直线控件长度。X1和Y1属性设置直线控件左端点的坐标,X2和Y2属性设置直线控件右端点的坐标。形状控件(Shape)可用Shape控件在窗体、框架或图片框中创建下述预定义形状:矩形、正方形、椭圆形、圆形、圆角矩形或圆角正方形。1、Shape属性:指定形状,有六种预定义的形状。如vbShapeRectangle、vbShapeSquare、vbShapeOval等。2、FillStyle属性:提供了若干预定义的填充样式图案,如实线、水平线、十字线等。3、FillColor属性:设置填充颜色。该属性不影响边框颜色(BorderColor属性)11.4打印文字和图形VB提供的两种打印技术:在窗体中建立所需要的输出,然后用PrintForm方法打印窗体。利用Printer对象的方法输出文字或绘制图形,然后再用NewPage和EndDoc方法打印。窗体打印方法窗体的PrintForm方法将窗体的所有文字或图像传送到打印机。窗体中包含图形,只有窗体的AutoRedraw属性设置为True时,才能将图形打印出来。要打印文字,可以先将正文显示在窗体上,然后调用PrintForm方法:Form1.Print"这里是要打印的文本"Form1.PrintForm打印机对象(Printer)打印步骤:如果要使用缺省打印机以外的打印机打印,需在Printers集合中指定打印机给Printer对象。不指定则为默认打印机。将文本和图形装入Printer对象。用NewPage和EndDoc方法打印Printer对象的内容。用KillDoc方法可结束当前的打印作业。打印机(Printer)属性:Copies:打印拷贝的数目CurrentX,CurrentY:打印的行数和列数DrawStyle:指定图形的线型DrawWidth:指定所划线的宽度Font,FontName,FontSize,FontBold:字体信息Height,Width:当前打印页的高度和宽度Zoom:打印输出的缩放因子Orientation:打印输出模式(纵向或横向)打印机(Printer)方法:Circle,Line:画圆、椭圆、圆弧NewPage:将换行符输出到打印机Print:打印数据或文本PaintPicture:绘制图形图象文件Pset:打印输出圆形点EndDoc:终止文档打印,释放句柄KillDoc:从打印队列中清楚当前打印文档打印文本方法: Printer.CurrentX=1000 Printer.CurrentY=1000 Printer.Print“Howareyou” Printer.Print2 Printer.EndDoc打印变量、表达式方法: Name=“Tomson” Year=2000 Printer.PrintName Printer.PrintYear Printer.PrintcmdSave.Height+18打印多值方法: Printer.Print“Hehas”;3;“Children” 使用分号,字符是相连打印的 Printer.Print“Hehas”,3,“Children” 使用逗号,字符是分打印区打印的,一个打印区是14列宽打印图形图象方法:Pic1.Picture=LoadPicture(“1.bmp”)Printer.PaintPicturePic1.Picture,Pic1.Left,_Pic1.Top,Pic1.Width,Pic1.Height,vbMergeCopyifMsgBox(“Printitnow?”,vbYesNo)=vbNothen Printer.KillDocelse Printer.EndDocendif
本文档为【第11章VB设计图形应用程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
8888
暂无简介~
格式:ppt
大小:352KB
软件:PowerPoint
页数:0
分类:
上传时间:2018-06-26
浏览量:10