1、第四章第四章 数据的输入输出和图形控件数据的输入输出和图形控件 4.1 4.1 数据的输入数据的输入 4.2 4.2 数据的输出数据的输出 4.3 4.3 字形字形 4.4 4.4 图形控件及图形方法图形控件及图形方法11/20/202414.1 4.1 数据的输入数据的输入一、赋值语句一、赋值语句形式:形式:LET变量名表达式作用:作用:将表达式的值赋值给变量名。将表达式的值赋值给变量名。一般用于给变量赋值或对控件设定一般用于给变量赋值或对控件设定属性值。属性值。例:例:sRate!=0.1Text1.Text欢迎使用欢迎使用VisualBasic6.011/20/20242 当表达式的类型
2、与变量的类型不一致时,强制转换成左边的精度,如 iA%=10 /3 iA中的结果为3 注意:注意:虽然赋值号与关系运算符等于号都用“=”表示,VB系统会根据所处的位置自动判断是何种意义的符号。11/20/20243二、二、InputBoxInputBox函数函数:InputBoxInputBox(提示提示,标题标题,缺省缺省,x,x 坐标坐标,y,y坐标坐标)其中:其中:提示:提示:提示信息;提示信息;标题:标题:对话框标题;对话框标题;缺省:缺省:输入区缺省值;输入区缺省值;函数返回字符类型。函数返回字符类型。11/20/20244相应的语句如下:相应的语句如下:DimstrNameAsSt
3、ring*40strName=InputBox(请输入你的姓名请输入你的姓名+vbCrLf+然后单击确定然后单击确定,输输入框入框)也可以使用如下语句:也可以使用如下语句:DimstrNameAsString*40,strS1AsString*40strS1=请输入你的姓名请输入你的姓名+Chr(13)+Chr(10)+然后单击确定然后单击确定strName=InputBox(strS1,输入框输入框,100,100)当键盘输入当键盘输入“王晓明王晓明”后,变量后,变量strName获得键盘输入的值。获得键盘输入的值。例例:要在屏幕上显示图示的对话框:要在屏幕上显示图示的对话框:11/20/2
4、0245一、一、MsgBox函数和MsgBox过程 函数形式:函数形式:变量变量%=MsgBox(提示提示,按钮按钮,标题,标题)过程形式:过程形式:MsgBox提示提示,按钮按钮,标题标题4.2 4.2 数据的输出数据的输出11/20/20246按钮值如下:按钮值如下:11/20/20247函数返回所选按钮整数值:函数返回所选按钮整数值:11/20/20248例例4.14.1 编一帐号和密码检验程序。编一帐号和密码检验程序。要求:要求:帐号不超过帐号不超过6位数字,有错,清除原内容再输入。位数字,有错,清除原内容再输入。密码输入时在屏幕上以密码输入时在屏幕上以“*”代替;代替;若密码错,显示
5、有关信息,若密码错,显示有关信息,选择选择“重试重试”按钮,清除原内容再输入,选择按钮,清除原内容再输入,选择“取消取消”按钮,按钮,停止运行。停止运行。分析:分析:帐号帐号6位,位,MaxLength为为6,LostFocus判断判断数字数字IsNumeric函数函数密码密码PassWordChar为为“*”,MsgBox函数设置密码错对话框。函数设置密码错对话框。11/20/20249代码代码-账号有效性检验账号有效性检验PrivateSubText1_LostFocus()IfNotIsNumeric(Text1)ThenMsgBox请输入数字!请输入数字!Text1.SetFocusT
6、ext1=EndIfEndSub11/20/202410代码代码-密码检验密码检验PrivateSubCommand1_Click()IfText21234Theni=MsgBox(密码错误,重新输入吗?密码错误,重新输入吗?,vbOKCancel)Ifi=vbOKThenText2.SetFocusText2=ElseEndEndIfEndIfEndSub11/20/202411常常 见见 错错 误误数据合法性检查中引起程序的死循环数据合法性检查中引起程序的死循环:Private Sub Text1_LostFocus()If Not IsNumeric(Text1)Then Text1=T
7、ext1.SetFocus End IfEnd SubPrivate Sub Text2_LostFocus()If Not IsNumeric(Text2)Then Text2=Text2.SetFocus End IfEnd SubIf Text2 And Not IsNumeric(Text2)Text2Text1确定11/20/202412二、常用方法二、常用方法 1.Print方法方法 形式:对象.PrintSpc(n)|Tab(n)表达式列表;|,作用:在对象上输出信息对象对象:窗体、图形框或打印机(Printer),省略对象在窗体上输出。方法是面向对象的,故使用的形式为:方法是面
8、向对象的,故使用的形式为:对象对象.方法方法11/20/202413Spc(n)函数:函数:插入插入n个空格,允许重复使用。个空格,允许重复使用。Tab(n)函数:函数:左端开始右移动左端开始右移动n列,允许重复使用。列,允许重复使用。;(分号分号):光标定位上一个显示的字符后。光标定位上一个显示的字符后。,(逗号逗号):光标定位在下一个打印区的开始位置处。光标定位在下一个打印区的开始位置处。无无;,时换行。;,时换行。开始打印的位置是由对象的开始打印的位置是由对象的CurrentX和和CurrentX属属性决定,性决定,缺省为打印对象的左上角缺省为打印对象的左上角0,0。注意:要使注意:要使
9、Print方法在方法在Form_Load事件过程中起作用,事件过程中起作用,必须设置窗体的必须设置窗体的AutoRedraw为为True。11/20/202414Private Sub Form_Click()For i=1 To 5 Print Tab(i);String(6-I,);Spc(6);String(I,)Next i End Sub注意注意:String(number,character)返回指定长度重复字符的字符串。考虑:若把Spc(6)换成Tab(6),效果如何?例例4.2 4.2 显示图形显示图形11/20/2024152.2.ClsCls方法方法形式:对象.Cls 作用
10、:清除运行时在窗体或图形框中显示的文本或图形。注意:不清除在设计时的文本和图形。11/20/2024163.Move3.Move方法方法形式:形式:对象对象.Move左边距离左边距离,上边距离,上边距离,宽度,宽度,高度,高度作用:移动窗体或控件,并可改变其大小。作用:移动窗体或控件,并可改变其大小。对象:对象:可以是窗体及除时钟、菜单外的所有控件可以是窗体及除时钟、菜单外的所有控件注意:注意:只有只有left参数是必须的。但是,要指定任何其它的参数,必参数是必须的。但是,要指定任何其它的参数,必须先指定出现在语法中该参数前面的全部参数须先指定出现在语法中该参数前面的全部参数;例如例如:如果不
11、先指定如果不先指定left和和top参数,则无法指定参数,则无法指定width参参数。任何没有指定的尾部的参数则保持不变。数。任何没有指定的尾部的参数则保持不变。例例4.3图形移到窗体的中心。图形移到窗体的中心。11/20/202417代码代码PrivateSubCommand1_Click()Command1.Move(Form1.ScaleWidth-Command1.Width)/2,(Form1.ScaleHeight-Command1.Height)/2EndSub11/20/202418FontName:字符型,决定窗体上显示正文的字体。:字符型,决定窗体上显示正文的字体。Font
12、Size:整型,决定窗体上显示正文的字体大:整型,决定窗体上显示正文的字体大小。以磅为单位,最大值为小。以磅为单位,最大值为2160磅。磅。FontBold:逻辑型,决定窗体上显示正文的字体:逻辑型,决定窗体上显示正文的字体是否粗体。是否粗体。FontItalic:逻辑型,决定窗体上显示正文的字体:逻辑型,决定窗体上显示正文的字体是否斜体。是否斜体。FontStrikethru:逻辑型,决定窗体上显示正文的:逻辑型,决定窗体上显示正文的字体是否加删除线。字体是否加删除线。FontUnderline:逻辑型,决定窗体上显示正文的:逻辑型,决定窗体上显示正文的字体是否带下划线。字体是否带下划线。4
13、.3 4.3 字形字形11/20/202419主要控件主要控件PictureImageLineShape4.4 4.4 图形控件及图形方法图形控件及图形方法主要方法主要方法PsetLineCircle11/20/2024204.4 4.4 图形控件图形控件 4.4.1图片框和图像框图片框和图像框窗体窗体、图形框图形框和和图像框图像框可以显示来自图形文件的图形。可以显示来自图形文件的图形。图形文件图形文件的存储形式有多种,常见有以下几种:的存储形式有多种,常见有以下几种:(1)位图位图(Bitmap):用像素表示的图像,将它作为位用像素表示的图像,将它作为位的集合存储起来,每个位都对应一个像素的
14、集合存储起来,每个位都对应一个像素。(.Bmp)(2)图标图标(Icon):图标是位图,最大为图标是位图,最大为32x32像素,像素,常用来表示最小化的应用程序。常用来表示最小化的应用程序。(.Ico)11/20/202421(3)图元文件)图元文件(MetaFile):将图像作为线、圆或将图像作为线、圆或多多边形这样的图形对象来存储,而不是存储边形这样的图形对象来存储,而不是存储其像素。其像素。图元文件的类型有两种:图元文件的类型有两种:标准型标准型(.Wmf)增强型增强型(.Emf)(4)JPEG文件:文件:JPEG是一种支持是一种支持8位和位和24位位颜色的压缩位图格式颜色的压缩位图格式
15、。(.jpg)(5)GIF文件:文件:GIF是一种支持是一种支持256种颜色的种颜色的压缩位图格式。压缩位图格式。(.gif)11/20/202422图像控件(图像控件(Image)图像控件图像控件用来显示一个来自磁盘上的图形文件并用来显示一个来自磁盘上的图形文件并可随意调整图形的大小。可随意调整图形的大小。(.BMP、.ICO、.WMF、.EMF、.JPG、.GIF文件文件)重要属性、事件和方法:重要属性、事件和方法:1、Name属性属性对象名对象名2、Left、Top、Width、Height、Visible、Enabled3、BorderStyle属性属性边框样式边框样式0:无边框(默认
16、):无边框(默认)1:有边框:有边框11/20/2024234、Picture属性属性:返回或设置控件中要显示的图片。返回或设置控件中要显示的图片。其格式为:其格式为:.Picture=LoadPicture()LoadPicture函数语法为:函数语法为:LoadPicture()说明:说明:不带参数的不带参数的LoadPicture()函数,函数,是使图像控件是使图像控件不显示任何图像。不显示任何图像。属性窗口设置的属性窗口设置的Picture属性属性,会被复制到二进,会被复制到二进制窗体文件制窗体文件(.frx)中,运行时不依赖源文件。中,运行时不依赖源文件。而在程而在程序代码中使用序代
17、码中使用LoadPicture调入的图形文件,调入的图形文件,在运行时在运行时要保证其存在于指定的路径中。要保证其存在于指定的路径中。11/20/2024245、Stretch属性属性:用来指定一个用来指定一个图形是否要调整图形是否要调整大小,大小,以适应图像框控件的大小(以适应图像框控件的大小(True:缩放缩放图像;图像;False(默认值):图像以原始大小显示)默认值):图像以原始大小显示)。6、Move方法(无方法(无Print方法)方法)7、Click事件、事件、Dbclick事件事件例例:编写程序,交换两个图片框中的图形。编写程序,交换两个图片框中的图形。11/20/202425例
18、:例:交换图形。交换图形。图图7“交换图形交换图形”设计界面设计界面图图8“交换图形交换图形”运行界面运行界面11/20/202426程序清单如下:程序清单如下:PrivateSubCommand1_Click()交换图片交换图片Image3.Picture=Image1.PictureImage1.Picture=Image2.PictureImage2.Picture=Image3.PictureEndSub11/20/202427图片框控件(图片框控件(PictureBox)图图片片框框是是用用来来显显示示图图形形的的,但但同同时时它它又又可可以以作作为为其其它它控控件件的的容容器器。可
19、可以以使使用用Print方方法法,而而图图像像框框控控件件则则不不具具有有这这些些性性能能。但但图图像像框框控控件件使使用用较较少少的的系系统统资资源源,所所以以重重画画起起来来比比图图片片框框控控件要快。件要快。重要属性、事件和方法:重要属性、事件和方法:1、Name属性属性对象名对象名2、Left、Top、Width、Height、Visible、Enabled属性属性3、BorderStyle属性属性边框样式边框样式0:无边框:无边框1:有边框(默认):有边框(默认)11/20/2024284、Picture属性属性:与图像控件相同5、AutoSize属性属性 AutoSize属性用来指
20、定图片框是否要调整图片框是否要调整大小,大小,以适应图像的大小(True:图片框按图片大小自动调整以适应图像的大小;False(默认值):图片框以原始大小显示)。7、Print、Move、Cls方法方法8、Click事件、事件、Dbclick事件事件9、Change事件事件:当图片框的Picture 属性改变时触发。11/20/202429例:例:图片框示例。图片框示例。图图6图片框示例图片框示例 要求:要求:单击:显示单击:显示双击:消失双击:消失11/20/202430程序清单如下:程序清单如下:PrivateSubForm_Click()P1.Picture=LoadPicture(“D
21、:Pic1.bmp”)装入图片EndSubPrivateSubForm_DblClick()P1.Picture=LoadPicture()清除图片EndSub11/20/202431Autosize属性:决定控件是否自动适应图片的大小属性:决定控件是否自动适应图片的大小 TrueTrue:图片框自动调整大小适应图片。图片框自动调整大小适应图片。FalseFalse:图片框不能自动调整大小,加载的图形保持其原始尺寸。图片框不能自动调整大小,加载的图形保持其原始尺寸。图图1AutoSize属性为属性为False 图图2AutoSize属性为属性为True 11/20/202432图图图图像像框框
22、框框(Image)(Image)作用与图片框类似,区别在于:作用与图片框类似,区别在于:作用与图片框类似,区别在于:作用与图片框类似,区别在于:1 1、图片框可以作为其它控件的容器,图像框不能、图片框可以作为其它控件的容器,图像框不能、图片框可以作为其它控件的容器,图像框不能、图片框可以作为其它控件的容器,图像框不能2 2、图片框可以通过、图片框可以通过、图片框可以通过、图片框可以通过PrintPrint方法显示文本,图像框不能方法显示文本,图像框不能方法显示文本,图像框不能方法显示文本,图像框不能3 3、图像框比图片框占用内存少,显示速度快、图像框比图片框占用内存少,显示速度快、图像框比图片
23、框占用内存少,显示速度快、图像框比图片框占用内存少,显示速度快Strech属性:决定图片是否自动适应控件的大小属性:决定图片是否自动适应控件的大小属性:决定图片是否自动适应控件的大小属性:决定图片是否自动适应控件的大小TrueTrue:被加载图形自动调整大小适应图象框的大小。被加载图形自动调整大小适应图象框的大小。被加载图形自动调整大小适应图象框的大小。被加载图形自动调整大小适应图象框的大小。FalseFalse:图象框自动调整大小适应加载的图形。图象框自动调整大小适应加载的图形。图象框自动调整大小适应加载的图形。图象框自动调整大小适应加载的图形。图图3图像框本来大小图像框本来大小图图4Str
24、etch属性为属性为False图图5Stretch属性为属性为True 11/20/2024331、以下关于图片框控件的说法中,错误的是(、以下关于图片框控件的说法中,错误的是()A)可以通过可以通过Print方法在图片框中输出文本方法在图片框中输出文本B)清空图片框控件中图形的方法之一是加载一个空图形清空图片框控件中图形的方法之一是加载一个空图形C)图片框控件可以作为容器使用图片框控件可以作为容器使用D)用用Stretch属性可以自动调整图片框中图形的大小属性可以自动调整图片框中图形的大小 答案:答案:D2、假定在图片框、假定在图片框Picture1中装入了一个图形,为了清除该图形中装入了一
25、个图形,为了清除该图形(不删除图片框),应采用的正确方法是(不删除图片框),应采用的正确方法是_。A)选择图片框,然后按选择图片框,然后按Del键键 B)执行语句执行语句Picture1.Picture=LoadPicture()C)执行语句执行语句Picture1.Picture=D)选择图片框,在属性窗口中选择选择图片框,在属性窗口中选择Picture属性条,然后按属性条,然后按回车键回车键 答案:答案:B11/20/2024344.4.2 4.4.2 直线与形状控件直线与形状控件直线控件(直线控件(Line)n n在窗体上显示一条各种类型和宽度的线条,起装饰在窗体上显示一条各种类型和宽度
26、的线条,起装饰在窗体上显示一条各种类型和宽度的线条,起装饰在窗体上显示一条各种类型和宽度的线条,起装饰作用。作用。作用。作用。n n重要属性、事件和方法:重要属性、事件和方法:1 1、NameName属性属性属性属性对象名对象名对象名对象名2 2、X1X1属性、属性、属性、属性、Y1Y1属性、属性、属性、属性、X2X2属性、属性、属性、属性、Y2Y2属性属性属性属性直线控件的两个端点在窗体上的坐标值。直线控件的两个端点在窗体上的坐标值。直线控件的两个端点在窗体上的坐标值。直线控件的两个端点在窗体上的坐标值。直线控件没有直线控件没有直线控件没有直线控件没有LeftLeft、TopTop、Heig
27、htHeight、WidthWidth属性属性属性属性3 3、VisibleVisible属性属性属性属性可见性可见性可见性可见性11/20/2024354、BorderStyle属性属性线条样式线条样式0 或 vbTransparent透明 1 或 vbBSSolid实线(默认值)2 或 vbBSDash虚线 3 或 vbBSDot点线 4 或 vbBSDashDot点划线 5 或 vbBSDashDotDot双点划线 6 或 vbBSInsideSolid实线5、BorderWidth属性属性线条宽度 只有实线和透明有线宽注意注意:Line 控件无Left、Top、Height、Width
28、、Enabled属性;Line 控件无任何事件;Line 控件也没有 Move 方法11/20/202436形状控件(形状控件(Shape)在窗体上显示多种不同的形状,起装饰作用。重要属性、事件和方法:1、Name属性属性对象名2、Left、Top、Height、Width、Value属性属性3、Shape属性属性决定形状控件的不同形状 0 或 vbShapeRectangle矩形 1 或 vbShapeSquare正方形 2 或 vbShapeOval椭圆形 3 或 vbShapeCircle圆形 4 或 vbShapeRoundedRectangle圆角矩形 5 或 vbShapeRoun
29、dedSquare圆角正方形11/20/2024374 4、BorderStyleBorderStyle 属性属性属性属性边框样式边框样式边框样式边框样式5 5、BorderWidthBorderWidth属性属性属性属性边框宽度边框宽度6 6、FillStyleFillStyle属性属性属性属性填充样式填充样式0实线实线1透明(默认)透明(默认)2水平直线水平直线3垂直直线垂直直线4上斜对角线上斜对角线5下斜对角线下斜对角线6十字线十字线7交叉对角线交叉对角线注意:注意:ShapeShape控件无控件无控件无控件无EnabledEnabled属性;属性;属性;属性;ShapeShape控件无
30、任何事件;控件无任何事件;控件无任何事件;控件无任何事件;ShapeShape控件有控件有控件有控件有 MoveMove方法方法方法方法11/20/2024384.4.3绘图方法绘图方法引引例:正弦曲线例:正弦曲线设设计计一一个个窗窗体体,在在窗窗体体上上添添加加一一个个图图片片框框。运运行行程程序序时时,单单击击命命令令按按钮钮在在图图片片框中绘制正弦曲线。框中绘制正弦曲线。11/20/202439代码代码PrivateSubCommand1_Click()Form1.ClsForm1.DrawWidth=1Form1.Scale(-3.14,1)-(3.14,-1)Line(-3.14,0
31、)-(3.14,0),vbBlueLine(0,1)-(0,-1),vbBlueCurrentX=0:CurrentY=0Print0CurrentX=2.9:CurrentY=0PrintxCurrentX=0:CurrentY=1PrintyForx=-3.14To3.14Step3.14/1000PSet(x,Sin(x)NextEndSub11/20/202440坐标系坐标系 PSetPSet方法方法-画点画点 LineLine方法方法 -画线画线CircleCircle方法方法 -画圆画圆绘图方法绘图方法11/20/202441坐标系统坐标系统每个容器都有一个坐标系,构成一个坐标系,
32、需每个容器都有一个坐标系,构成一个坐标系,需要三个要素:坐标原点、坐标度量单位、坐标轴要三个要素:坐标原点、坐标度量单位、坐标轴的长度与方向。坐标度量单位由容器对象的的长度与方向。坐标度量单位由容器对象的ScaleMode属性决定。缺省时为属性决定。缺省时为Twip。每英寸每英寸1440个个Twip,20个个Twip为一磅。为一磅。原点原点HeightScaleHeight11/20/202442方法一:采用方法一:采用ScaleScale方法来设置坐标系:方法来设置坐标系:对象对象.Scale(xLeft,yTop)-(xRight,yBottom)可在程序中使用可在程序中使用Scale方法
33、改变坐标系统。方法改变坐标系统。当当Scale方法不带参数时,取消用户定义的坐标系,方法不带参数时,取消用户定义的坐标系,采用缺省坐标系。采用缺省坐标系。(xLeft,yTop)(xRight,yBottom)011/20/202443例例:在Form_Click 事件中用方法定义一窗体的坐标系PrivateSubForm_Click()ClsForm1.Scale(-200,250)-(300,-150)Line(-200,0)-(300,0)画画X轴轴Line(0,250)-(0,-150)画画Y轴轴CurrentX=0:CurrentY=0:Print0标记坐标原标记坐标原点点Curre
34、ntX=280:CurrentY=40:PrintX标记标记X轴轴CurrentX=10:CurrentY=240:PrintY标记标记Y轴轴EndSub11/20/202444方法二:方法二:通过通过ScaleLeft,ScaleTop,ScaleWidth和和ScaleHeight属性实现。属性实现。(ScaleLeft,ScaleTop)自定义坐标系自定义坐标系11/20/202445例例:在Form_Click 事件中用方法二定义窗体的坐标系PrivateSubForm_Click()ClsForm1.ScaleLeft=-200:Form1.ScaleTop=250Form1.Sca
35、leWidth=500:Form1.ScaleHeight=-400Line(-200,0)-(300,0)画画X轴轴Line(0,250)-(0,-150)画画Y轴轴CurrentX=0:CurrentY=0:Print0标记坐标原点标记坐标原点CurrentX=280:CurrentY=40:PrintX标记标记X轴轴CurrentX=10:CurrentY=240:PrintY标记标记Y轴轴EndSub11/20/202446参数转换参数转换ScaleLeft=xLeftScaleTop=yTopScaleWidth=xRight-xLeftScaleHeight=yBottom-yTo
36、p11/20/202447 用用PSetPSet方法画点方法画点 用用PSet方法可以在窗体或图片框上绘制一个点。方法可以在窗体或图片框上绘制一个点。PSet方法方法的一般格式:的一般格式:对象名对象名.PSet(x,y),颜色颜色 其其中中,对对象象名名可可以以是是窗窗体体、图图片片框框或或打打印印机机,默默认为窗体,认为窗体,(x,y)为绘制点的坐标。为绘制点的坐标。11/20/202448设计一个窗体,在窗体上添加一个图片框。设计一个窗体,在窗体上添加一个图片框。运行程序时,单击运行程序时,单击【正弦曲线正弦曲线】在图片框中在图片框中用画点方法绘制一个正弦曲线。用画点方法绘制一个正弦曲线
37、。例:用画点方法绘制正弦曲线例:用画点方法绘制正弦曲线11/20/202449代码代码-设置坐标系设置坐标系+画坐标轴画坐标轴PrivateSubForm_Load()Scale(-100,1000)-(1000,-1000)DrawWidth=3Line(-100,0)-(1000,0)Line(0,-1000)-(0,1000)DrawWidth=1CurrentX=0:CurrentY=0:Print0CurrentX=20:CurrentY=990:PrintyCurrentX=980:CurrentY=0:PrintxEndSub11/20/202450代码代码-正弦曲线正弦曲线Pr
38、ivateSubCommand1_Click()正弦正弦ForeColor=RGB(255,0,0)Forx=0To1000y=500*Sin(x*3.14/180)PSet(x,y)NextxEndSub11/20/202451代码代码-余弦曲线余弦曲线PrivateSubCommand2_Click()余弦余弦ForeColor=RGB(0,0,255)Forx=0To1000y=500*Cos(x*3.14/180)PSet(x,y)NextxEndSub11/20/202452Line方法方法 用用Line方方法法可可以以在在窗窗体体或或图图片片框框上上绘绘制制一一条条直直线线或或绘制
39、一个矩形。绘制一个矩形。Line方法方法的一般格式:的一般格式:对象名对象名.Line(x1,y1)-(x2,y2),颜色颜色,BF其其中中,(x1,y1)为为始始点点坐坐标标;(x2,y2)为为终终点点坐坐标标;颜颜色色可可以以使使用用RGB函函数数,规规定定画画线线或或画画矩矩形形的的颜颜色色。关关键键字字B表表示示画画矩矩形形,关关键键字字F表表示示用用画画矩矩形形的的颜颜色色来填充矩形。来填充矩形。关键字关键字F不能单独使用,必须和关键字不能单独使用,必须和关键字B一起使用。一起使用。默默认认F,矩矩形形的的填填充充由由FillStyle属属性性决决定定填填充充图图案,由案,由Fill
40、Color属性决定填充颜色。属性决定填充颜色。11/20/202453DrawStyleDrawStyle属性:给出所画线的形状属性:给出所画线的形状FillStyleFillStyle属性:属性:填充填充11/20/202454例:绘制矩形和直线例:绘制矩形和直线设计一个窗体,在窗体上添加一个图片框和设计一个窗体,在窗体上添加一个图片框和4个命个命令按钮。运行程序时,单击令按钮。运行程序时,单击【画矩形画矩形】在图片框在图片框中绘制十个蓝色的嵌套矩形,单击中绘制十个蓝色的嵌套矩形,单击【画交叉线画交叉线】绘制到最外层矩形对角的两条红色直线。单击绘制到最外层矩形对角的两条红色直线。单击【擦除矩
41、形擦除矩形】和和【擦除交叉线擦除交叉线】也能完成相应的任也能完成相应的任务。务。11/20/202455画矩形画矩形PrivateSubCommand1_Click()Fori=1To10Picture1.Line(i*100,i*100)-(Picture1.Width-i*100,Picture1.Height-i*100),vbblue,BNextEndSub11/20/202456画交叉线画交叉线PrivateSubCommand2_Click()Picture1.Line(0,0)-(Picture1.ScaleWidth,Picture1.ScaleHeight),vbRedPic
42、ture1.Line(0,Picture1.ScaleHeight)-(Picture1.ScaleWidth,0),vbRedEndSub11/20/202457擦除矩形擦除矩形PrivateSubCommand3_Click()Fori=1To10Picture1.Line(i*100,i*100)-(Picture1.Width-i*100,Picture1.Height-i*100),Picture1.BackColor,BNextEndSub11/20/202458擦除交叉线擦除交叉线PrivateSubCommand4_Click()Picture1.Line(0,0)-(Pict
43、ure1.ScaleWidth,Picture1.ScaleHeight),Picture1.BackColorPicture1.Line(0,Picture1.ScaleHeight)-(Picture1.ScaleWidth,0),Picture1.BackColorEndSub11/20/202459Circle方法方法用用Circle方方法法可可以以在在窗窗体体或或图图片片框框上上绘绘制制圆圆、圆圆弧弧、扇形或椭圆。扇形或椭圆。Circle方法方法的一般格式是:的一般格式是:对象名对象名.Circle(x,y),半径半径,颜色颜色,起始角起始角,终止角终止角,纵横比率纵横比率其其中中,
44、(x,y)为为圆圆心心坐坐标标;颜颜色色可可以以使使用用RGB函函数数;起起始始角角和和终终止止角角应应使使用用弧弧度度,值值在在02时时绘绘制制圆圆弧弧,取负值时绘制取负值时绘制扇形扇形;使用纵横比率可用绘制椭圆。;使用纵横比率可用绘制椭圆。当当画画椭椭圆圆时时,若若无无颜颜色色、起起始始角角和和终终止止角角而而只只有有纵纵横横比率时,则各参数之间的逗号不能省略。比率时,则各参数之间的逗号不能省略。11/20/202460例:编程实现以下效果例:编程实现以下效果11/20/202461代码代码SubForm_Click()DimCX,CY,Radius,LimitDeclarevariabl
45、e.CX=ScaleWidth/2SetXposition.CY=ScaleHeight/2SetYposition.IfCXCYThenLimit=CYElseLimit=CXForRadius=0ToLimitSetradius.Circle(CX,CY),Radius,RGB(Rnd*255,Rnd*255,Rnd*255)NextRadiusEndSub11/20/202462例例:Circle方法演示方法演示设设计计一一个个窗窗体体,在在窗窗体体上上添添加加一一个个图图片片框框和和4个个命命令令按按钮钮,4个个命命令令按按钮钮分分别别是是【绘绘制制圆圆】【绘绘制制扇扇形形】【绘绘制制
46、圆圆弧弧】【绘绘制制椭椭圆圆】。运运行行程程序序时时,单单击击任任何何一一个个命命令令按按钮钮可可在在图图片片框框中中绘绘制制相相应图形。应图形。11/20/202463绘制圆绘制圆PrivateSubCommand1_Click()Picture1.Clsx=Picture1.ScaleWidth/2y=Picture1.ScaleHeight/2r=IIf(xy,x,y)Picture1.Circle(x,y),rEndSub11/20/202464绘制扇形绘制扇形PrivateSubCommand2_Click()Picture1.Clsx=Picture1.ScaleWidth/2y=
47、Picture1.ScaleHeight/2r=IIf(xy,x,y)Picture1.Circle(x,y),r,-3.14/4,-3.14*3/4EndSub11/20/202465绘制圆弧绘制圆弧PrivateSubCommand3_Click()Picture1.Clsx=Picture1.ScaleWidth/2y=Picture1.ScaleHeight/2r=IIf(xy,x,y)Picture1.Circle(x,y),r,3.14/4,3.14*3/4EndSub11/20/202466绘制椭圆绘制椭圆PrivateSubCommand4_Click()Picture1.Cl
48、sx=Picture1.ScaleWidth/2y=Picture1.ScaleHeight/2r=IIf(xy,x,y)Picture1.Circle(x,y),r,0.5EndSub11/20/202467例:满天星例:满天星11/20/202468PrivateSubForm_click()ClsFori=1To50CurrentX=Form1.ScaleWidth*RndCurrentY=Form1.ScaleHeight*RndForm1.ForeColor=RGB(Rnd*255,Rnd*255,Rnd*255)PrintCurrentX=Form1.ScaleWidth*RndCurrentY=Form1.ScaleHeight*RndForm1.ForeColor=RGB(Rnd*255,Rnd*255,Rnd*255)PrintNextEndSub11/20/202469