二级特训图形控件Word文档下载推荐.docx
- 文档编号:20211624
- 上传时间:2023-01-19
- 格式:DOCX
- 页数:14
- 大小:97.47KB
二级特训图形控件Word文档下载推荐.docx
《二级特训图形控件Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《二级特训图形控件Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
Print15.1.2改变容器坐标系的改变容器坐标系的Scale方法方法容器坐标系中,坐标系刻度单位的缺省值为“缇”(1缇0.01764毫米),容器的最小坐标值为左上角坐标,容器的最大坐标值为右下角坐标。
利用Scale方法可以改变原点的坐标并随之改变最大坐标值:
格式:
容器名.Scale(x1,y1)-(x2,y2)该语句功能:
改变容器(缺省容器名指窗体)原点坐标为(x1,y1),最大坐标值为(x2,y2),将容器在X轴方向分为x2-x1等份、Y轴方向分为y2-y1等份,并将容器的4个坐标属性设置为:
容器名.ScaleLeft=x1容器名.ScaleTop=y1容器名.ScaleWidth=x2-x1容器名.ScaleHeight=y2-y1例如:
执行语句“Form1.Scale(-200,-100)-(2000,1000)”,将改变窗体左上角坐标为(-200,-100)、右下角坐标为(2000,1000),该方法的功能与下面的程序代码等效:
ScaleLeft=-200ScaleTop=-100ScaleWidth=2200ScaleHeight=1100无参数的引用方法如“容器名.Scale”可以使对该容器有关坐标的属性恢复为缺省值。
5.1.3坐标刻度坐标刻度坐标刻度又称坐标单位,缺省情况采用Twip(缇)为单位。
567缇等于一厘米,1440缇等于一英寸。
VB程序设计中,经常使用的刻度单位为:
缇、磅和毫米。
通过设置容器的ScaleMode属性可以选择改变坐标系统的单位。
设置(选择)标准刻度ScaleMode属性值为1(缺省值):
容器坐标系的刻度单位为缇,1缇0.01764毫米0.05磅ScaleMode属性值为2:
容器坐标系的刻度单位为磅,1磅0.353毫米ScaleMode属性值为3:
容器坐标系的刻度单位为像素,是显示器分辨率的最小单位。
ScaleMode属性值为4:
容器坐标系的刻度单位为字符,每个字符宽6磅、高12磅。
ScaleMode属性值为5:
容器坐标系的刻度单位为英寸。
ScaleMode属性值为6:
容器坐标系的刻度单位为毫米。
ScaleMode属性值为7:
容器坐标系的刻度单位为厘米。
自定义刻度将ScaleMode值设置为0则采用自定义刻度。
用Scale方法设置坐标系后,ScaleMode值自动变为0。
反之,ScaleLeft、ScaleTop、ScaleHeight、ScaleWidth属性被改变,ScaleMode值自动变为0,单位长度根据变化后的上述属性重新确定。
综上所述:
容器对象(Form和Picture)除具有位置(Left、Top)、大小(Width、Height)属性以外,还有坐标属性(ScaleLeft、ScaleTop、ScaleWidth、ScaleHeight)。
容器控件的位置、大小属性均采用其所在容器坐标系的刻度,与容器本身的坐标刻度无关。
控件的位置、大小属性也采用其所在容器坐标系的刻度。
容器的坐标属性值则以该容器所设置的坐标刻度为单位。
屏幕(Screen)对象可以作为窗体的容器,但它只能提供缺省的坐标系统,其坐标刻度总是为“缇”,不可以改变。
因此,窗体的位置(Left、Top)、大小(Width、Height)属性值均采用缇为单位。
在引入坐标系统以后,以下几个问题需要读者加以注意:
容器的有关图形绘制的方法,全都以ScaleLeft和ScaleTop属性值为最小值,以ScaleLeft+ScaleWidth、ScaleTop+ScaleHeight为最大值。
容器的所有的图形方法和Print方法,都使用对应容器的坐标系统。
如果在方法中指明容器则采用容器坐标系,否则采用窗体坐标系。
容器的事件过程中,形参表示的鼠标点位为容器坐标系。
MouseDown、MouseUp、MouseMove等事件过程中的形参x、y,其值为事件发生时鼠标在所在容器中的坐标位置。
5.2形状控件和直线控件形状控件和直线控件5.2.1形状控件形状控件工具箱中形状控件的图标为。
形状控件缺省的控件名称为:
Shape1、Shape2、形状控件常用属性Shape属性形状控件用于创建指定的图形,通过设置Shape属性来得到所需要的形状,画出正方形、矩形、圆和椭圆等。
Shape属性定义该控件显示的图形。
取整数值或系统定义的符号常量,取值及含义如下:
0或VbShapeRectangle:
控件形状为矩形。
1或VbShapeSquare:
控件形状为正方形。
2或VbShapeOval:
控件形状为椭圆形。
3或VbShapeCircle:
控件形状为圆形。
4或VbShapeRoundedRectangle:
控件形状为圆角矩形。
5或VbShapeRoundedSquare:
控件形状为圆角正方形。
BoderStyle属性(整数06)该属性定义图形边框样式,取值及含义如下:
0:
透明,即无边框。
1:
实线为缺省值。
2:
长虚线。
3:
虚线。
4:
点划线。
5:
双点划线。
6:
内插实线,如果BorderWidth属性值大于1,控件保证图形最大尺寸等于设定值。
FillStyle属性(整数07)该属性用于指定图形的填充样式。
取值及含义如下:
实心填充1:
透明,即不填充,为缺省值。
水平线填充。
垂直线填充。
斜线填充。
反斜线填充。
网格填充。
7:
倾斜网格填充。
其他常用属性BorderColor:
设置边框颜色。
FillColor:
设置填充颜色。
BorderWidth:
设置边框宽度。
形状控件应用示例例5-4形状控件示例。
界面设计在窗体上添加6个形状控件,并设计成控件数组,取名为Shape1;
2个命令按钮用于控制程序的运行,如图5-8所示。
程序运行时,用形状控件画出的图形如图5-9所示。
图5-8例5-4之界面设计过程设计PrivateSubCommand1_Click()Fori%=0To5Shape1(i%).Shape=i%Shape1(i%).FillStyle=i%Shape1(i%).FillColor=QBColor(i%*2)Shape1(i%).BorderWidth=i%+1Nexti%EndSubPrivateSubCommand2_Click()EndEndSub5.2.2直线控件直线控件工具箱中直线控件的图标为。
直线控件缺省的控件名称为:
Line1、Line2、界面设计时,可以通过鼠标操作调整线段的位置、长短和颜色等属性;
程序运行时,可以通过改变直线的端点坐标(x1,y1)、(x2,y2)来移动它或调整它的长短。
Line控件通过对BoderStyle属性的设置定义该控件所显示的直线的线形,其不同取值表示不同的线形,分别为透明、实线、长虚线、虚线、点划线、双点划线等。
5.3图形方法图形方法5.3.1使用颜色使用颜色使用图形方法绘图时总要使用不同的颜色,VB6.0使用的颜色用一个长整型数(通常用16进制)表示,如&
HFFFF00&
。
其数值由3部分组成:
右边的两位(16进制数,下同)代表红色的亮度值,中间的两位代表绿色的亮度值,左边的两位代表蓝色的亮度值。
每个亮度值都可以取0到255之间的数值,因此共有一千六百多万种不同的颜色取值。
程序运行时,可以使用颜色函数、使用系统预定义颜色常量、直接赋值或使用通用对话框中的“颜色”对话框来指定颜色。
颜色函数VB提供了两个专门处理颜色的函数:
RGB和QBColor。
RGB函数RGB(Red,Green,Blue)其中:
Red、Green、Blue分别表示红色的亮度值,绿色的亮度值和蓝色的亮度值。
取值范围都是0到255。
如将窗体Form1的背景色设置为红色,命令如下:
Form1.BackColor=RGB(255,0,0)QBColor函数QBColor(Color)其中:
Color参数是一个介于0到15的整数,如表5-2所示。
例如:
将窗体Form1的背景色设置为红色,也可以写作:
Form1.BackColor=QBColor(4)表5-2Color参数的设置值及对应的颜色参数值颜色参数值颜色0黑色8灰色1蓝色9亮蓝色2绿色10亮绿色3青色11亮青色4红色12亮红色5洋红色13亮洋红色6黄色14亮黄色7白色15亮白色使用预定义常量预定义常量在VB6.0内部定义,读者可以在视图菜单的“对象浏览器”中选择ColorConstants查看所有这些常量,在程序中不需要声明就可以直接使用。
如:
Form1.BackColor=vbRed直接赋值如果知道具体的颜色值,也可以直接给颜色属性赋值,如:
Form1.BackColor=&
HFF&
设置窗体背景色为亮红色Form1.BackColor=&
HFF00&
设置窗体背景色为亮绿色Form1.BackColor=&
设置窗体背景色为黄色5.3.2图形方法图形方法画点方法Pset格式:
容器.Psetstep(x,y),color该方法在容器上(x,y)处以值为color的颜色画点(x、y是Single类型表达式);
缺省容器则指当前窗体,缺省color则为容器前景色(ForeColor)。
容器的当前输出位置坐标为(容器名.CurrentX,容器名.CurrentY),加Step关键字则在坐标(容器名.CurrentX+x,容器名.CurrentY+y)位置画点。
该方法所画点的大小,取决于容器的DrawWidth属性值。
DrawWidth用来设置绘图线的宽度,值以像素为单位,取值范围是1到32767,缺省值为1即一个像素宽。
设置该属性后,影响Pset、Line和Circle等方法的输出效果。
返回某点颜色值的函数Point格式:
Point(x,y)该函数的返回值为点(x,y)的颜色值。
如执行语句“C=Point(50,100)”,将窗体坐标(50,100)处点的颜色值存入变量C。
例5-5以下程序利用Pset方法绘制Cos(x)函数曲线。
PrivateSubForm_Click()DimxAsInteger,iAsIntegerFori=0To10000PSet(i,1200),vbRed用画点的方法连线NextiForx=0To10000PSet(x,1000*Cos(x*3.1415926/1800)+1200),vbBlueNextxEndSub程序运行的结果如图5-11所示。
图5-11Pset方法绘制Cos(x)函数曲线画线、矩形方法Line两点连线格式1:
容器名.Line(x1,y1)-(x2,y2),Color缺省容器名指窗体;
缺省起点坐标则以当前输出位置为起点;
缺省Color表达式则为容器的ForeColor属性;
坐标点为Single类型表达式。
例如,下列语句分别在窗体、控件Picture1上画线。
Line(100,150)-(400,300),RGB(120,120,200)窗体坐标Picture1.Line(10,10)-(60,100),RGB(0,0,255)图片框坐标格式2:
容器名.Line(x1,y1)-Step(x2,y2),Color所绘制直线的两个端点位置为(x1,y1)和(x1+x2,y1+y2)。
多点折线连续使用缺省起点、画两点连线的语句,可以绘制多点折线:
每句的终点位置为下一句的起点位置,首句或是采用格式1、或是以当前输出位置作为起点。
下列语句在窗体上所绘折线如图5-13所示。
Line(50,100)-(100,100),RGB(120,120,200)Line-(150,150),RGB(120,120,200)Line-Step(-50,50),RGB(120,120,200)Line-(50,200),RGB(120,120,200)Line-(0,150),RGB(120,120,200)Line-(50,100),RGB(120,120,200)图5-13多点折线矩形与填充矩形格式一:
容器名.Line(x1,y1)-Step(x2,y2),Color,B指定位置为矩形对角点,以容器的FillStyle填充格式、FillColor颜色在矩形内部填充;
图形边框的颜色由Color表达式指定,缺省Color表达式则为容器的ForeColor属性。
图形的填充特性只有对封闭图形才起作用。
格式二:
容器名.Line(x1,y1)-Step(x2,y2),Color,BF用画矩形边框的颜色再填充矩形为实心,该语句的输出效果与容器的FillStyle、FillColor属性无关。
执行下列语句后,在窗体上的输出结果如图5-14所示。
Form1.FillStyle=2Form1.FillColor=vbBlueForm1.ForeColor=vbGreenLine(100,100)-(1500,1000),vbRed,B红色外框,兰色水平填充线Line(1600,100)-(2500,1000),B绿色外框,兰色水平填充线Line(2800,100)-(3800,1000),vbRed,BF红色实心矩形图5-14矩形与填充矩形圆、圆弧与椭圆方法Circle画圆格式:
容器名.CircleStep(x,y),radius,Color以(x,y)为圆心(有Step关键字则以(CurrentX+x,CurrentY+y)为圆心)、以radius为半径画颜色值为Color的圆。
缺省容器名、Color选项的有关规则同前,不再赘述。
例5-8画1个当前窗体中所能容纳的最大的兰色实心圆,如图5-15所示。
PrivateSubForm_Click()DimrAsSingle缺省容器名称都是指窗体的属性、方法。
r=ScaleWidthIfScaleWidthScaleHeightThenr=ScaleHeightFillStyle=0封闭图形均将内部填充为实心。
FillColor=RGB(0,0,255)填充色为蓝色。
Circle(ScaleWidth/2,ScaleHeight/2),r/2,RGB(0,0,255)EndSub图5-15兰色实心圆请读者考虑,如果要在容器Picture1中按上述要求画圆,则应该如何改写程序?
画圆弧格式:
容器名.CircleStep(x,y),radius,Color,start,endstart、end为single类型表达式,该方法以start弧度为起点按逆时针方向到end弧度为止画一段圆弧(平行与x轴的正向为0弧度)。
若Start为负值,该方法还画出1条从圆心到圆弧相应端点的连线,参数end也同样。
例5-9下列程序在窗体上画出1个红、绿、蓝各占1/3的圆饼图(如图5-16所示)。
PrivateSubForm_Click()DimpiAsDouble,xAsDouble,yAsDoublepi=3.1415926535FillStyle=0:
FillColor=RGB(255,0,0)x=ScaleWidth2:
y=ScaleHeight2Circle(x,y),800,RGB(255,255,255),-2*pi,-pi*2/3FillColor=RGB(0,255,0)Circle(x,y),800,RGB(255,255,255),-pi*2/3,-pi*4/3FillColor=RGB(0,0,255)Circle(x,y),800,RGB(255,255,255),-pi*4/3,-pi*6/3EndSub图5-16圆饼图画椭圆(弧)格式:
容器名.CircleStep(x,y),radius,Color,start,end,aspectaspect是取正值的single类型表达式,为椭圆纵轴与横轴之比。
若aspect值小于1,则radius为横轴的长度,否则为纵轴的长度。
在缺省某参数前的参数时,不可以缺省“,”号。
例5-10在图片框中画一个圆桶,如图5-17所示。
图5-17在图片框中画圆桶界面设计,在窗体的合适位置添加一个图片框。
过程设计,利用循环自下而上画一系列椭圆,最上面的椭圆画成实心。
编写窗体的单击事件过程如下:
PrivateSubForm_Click()DimiAsInteger,xAsInteger,rAsIntegerDimyAsInteger,zAsIntegerx=Picture1.ScaleLeft+Picture1.ScaleWidth2设置圆心的X坐标值,水平方向居中r=x-100设置半径y=Picture1.ScaleTop+r*35z=Picture1.ScaleTop+Picture1.ScaleHeight-r*35y、z的值决定了圆桶的高度Fori=zToyStep-1Picture1.Circle(x,i),r,vbBlue,3/5画兰色椭圆NextiPicture1.FillStyle=0Picture1.FillColor=RGB(255,255,255)Picture1.Circle(x,i),r,3/5顶上画一白色椭圆EndSub
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 图形 控件