visual basic基础与案例开发详解_第1页
visual basic基础与案例开发详解_第2页
visual basic基础与案例开发详解_第3页
visual basic基础与案例开发详解_第4页
visual basic基础与案例开发详解_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

在VisualBasic程序中,图形程序设计是很重要的一部分,在坐标系统下,VisualBasic中的多控件来实现多技术的开发。本章将对坐标系统、图掌握画图方法——Line掌握画图方法——Circle掌握画图方法——Pset掌握画图方法——Point掌握图形方法——Cls10图形程序设计及VisualBasic坐标系统的VisualBasic的坐标系统是指在屏幕、窗体、容器(比如框)上定义的表示图形对象位置的平面二维格线,一般采用数对(x,y)的形式定位。其中,x值是沿x轴点的位置,最左0。yy010.1所示。10.1VisualBasic包括系统标准坐标系统和自定义坐标系统两种。同时,根据坐标系统的单根据系统默认规定,所有VisualBasic中移动、调整大小和图形绘制等操作,均使用缇需要注意的是,使用VisualBasic所有的图形和Print方法,使用容器的坐标系统。例如,在框里绘制控件Screen对象的Height属坐标系统的常用属窗体中控件的布局一般是通过设置与坐标系统相关的属性来实现的。VisualBasic中与ScaleTop)属性、(HeightWidth)属性、(ScaleHeightScaleWidth)ScaleMode属CurrentXCurrentY属性是返回或设置下一次打印或绘图方法的水平(CurrentX)或垂Object.CurrentXObject.CurrentX[=Object.CurrentY[=其中,参数Object为对象表达式;X为水平坐标的数值;Y10.1】CurrentXCurrentYPrint打印输出的位置。该示例的操作1步EXEPrivatePrivateSubForm1.CurrentX 设置PrintForm1.CurrentY 设置PrintPrint"CurrentX和CurrentY属性 '打印输End2步10.3Left和Top属性的作用是返回或设置一个以缇为单位的整数,分别对象左边缘和10.2】LeftTop属性来设置命令按钮的位置。该示例的具体操作第1步新建标准EXE工程,然后在窗体上添加如图10.3所示令按钮控件,其中2步PrivatePrivateSubForm_Load()Command1.Left=0Command1.Top=Command2.Left=Command2.Top=2000EndSub设置第一个按钮的Left属设置第一个按钮的Top属设置第二个按钮的Left属设置第二个按钮的Top属3步运行程序,窗体进行初始化,两个命令按钮显示位置根据程序代码设计,显10.4所示。 图10.2打印输出的位 图10.3添加命令按钮控按钮的Left和Top属性10.4ScaleLeft和ScaleTop属性可以返回或设置一个对象左边和上边水平(ScaleLeft)和垂直(ScaleTop)的坐标,其使用的语法结构与CurrentXCurrentY属性类似。10.3】ScaleLeftScaleTop属性更改上例显示命令按钮显示效1步LoadPrivateSubForm_Load()Form1.ScaleLeftPrivateSubForm_Load()Form1.ScaleLeft=-555Form1.ScaleTop=-Command1.Left=Command1.Top=Command2.Left=Command2.Top=2000EndSub设置窗体的ScaleLeft属设置窗体的ScaleTop属2步运行程序,窗体进行初始化,两个命令按钮的位置由于ScaleLeft和HeightWidth各对象的Height和WidthForm控件对象——从控件边框的中心度量,以使边框宽度不同的控件能够正确PrinterPaperSize属性的设置。ScreenPicture对象——以HiMetric为单位的的高度和宽度10.4】Height和Width第1步新建标准EXE工程,然后在窗体上添加如图10.6所示令按钮控件,其中图10.5命令按钮位置变 图10.6添加命令按2步PrivateSubForm_Click()Command1.HeightPrivateSubForm_Click()Command1.Height=1000Command1.Width=End3步HeightWidth属性10.7所示,符合程序设计要求。置对象内部的水平(ScaleWidth)(ScaleHeight)度量单位(根据当前的绘图区的宽度和高度自定义)MDIForm对象,在设计时是不可用的,并且在运行时是只读的。10.5】在上例的基础上,通过设置窗体的ScaleHeight和ScaleWidth属性,间接更1步10.4】的基础上,在窗体的LoadPrivateSubForm_Load()Form1.ScaleHeightPrivateSubForm_Load()Form1.ScaleHeight=2000Form1.ScaleWidth=Command1.Height=Command1.Width=设置ScaleHeight属设置ScaleWidth属EndEnd第2步运行程序,由于更改了窗体的度量单位,使设置同样大小令按钮显示效10.8所示。图10.7更改命令按钮控件大 图10.8按钮变ScaleMode属性可以返回或设置一个值,该Object.ScaleModeObject.ScaleMode[=其中,参数Value10.110.1Value常描0ScaleHeight、ScaleWidth、ScaleLeftScaleTop属性中的12磅(每逻辑英寸为72个磅3像素(监视器或分辨率的最小单位4字符(水平每个单位=120缇;垂直每个单位=240缇5英6毫7厘89坐标系统的常用方VisualBasic提供了Scale方法来创建用户自定义的坐标系统,同时通过ScaleXScaleObject.ScaleObject.Scale(x1,y1)-(x2,Objectx1,y1Object左上角的水平(x轴)和垂直(y轴)坐标,注意:注意:Scale方法的使用能够将坐标系统重置到所选择的任意刻度,Scale对运行时的Scale(两组坐标都省略),1步EXELoadPrivatePrivateSubForm1.Scale(300,300)-(2000,Line(400,1000)-(1000,EndPrivateSubLine(400,1000)-(1000,End使用Scale方2步10.9所示,再在10.10所示的加长效果。1条2条图10.9绘制第一 图10.10绘制第二ScaleX和ScaleY方法的作用是将窗体、图形框或的宽度或高度值从一种Object.ScaleXObject.ScaleX(Width,Fromscale,Object.ScaleY(Height,Fromscale,Object。Width为必需项,为ObjectHeightObjectFromscale为可选项,一个常数或数值,按照下列设置中的描述,指定ObjectWidth或HeightFromscaleScaleMode属HiMetric的新数值相同。Toscale可取的数值与ScaleMode属性的数值加上HiMetric的新数10.2Fromscale和Toscale取值常值描0object的宽度和高度设置为自定1缇(1440567缇)2磅(72点)3像素(显示器或分辨率的最小单位)4字符(水平=每单位120缇,垂直=每单位240缇)5英6毫7厘8HiMetric。如果省略fromscaleHiMetric为缺省值910.11LinePrivatePrivateSubForm_Load()DimiAsIntegerFori=1ToLine(0,200*i)-(5000,200*Line(200*i,0)-(200*i,NextiEndSub10.11Cls方法。画图Line方Object.LineObject.Line[Step](x1,1)-[Step](x2,y2),[Color],Object——对象表达式,如果ObjectObjectStepCurrentXCurrentY属性CurrentXCurrentY指示的位置。Step(x2,y2)RGBQBColor函数指定颜色。BDrawWidth属性值。在背景上画线和矩形的方法取决于DrawMode和DrawStyle属性值。Line方法时,DrawWidth属性值。在背景上画线和矩形的方法取决于DrawMode和DrawStyle属性值。Line方法时,CurrentXCurrentY属性被参数设置为终点。LineWith...EndWith10.7】Line方法在窗体上绘制出一条直线、一个矩形框和一个被填充颜色的PrivateSub和EndPrivateSub和End500)-(4000,绘制一条线,B绘制一个矩形(使用参数,绘制一个填充颜色的矩形(使用参数2步10.12所示的图形绘制效Line方法,但由于不同的参数设置可以产生不同效果。10.12画图Circle方[Object.]Circle[Object.]Circle[Step](x,y),Radius[,Color][,Start][,End][,ObjectObjectObject(x,y)RadiusColorRGBStart、EndRNNrN个圆)假定圆的rR0.8。绘制该艺术图案的具体操作步骤如下:1步EXEClick事件中输入如PrivatePrivateSubDimR,X,Y,X1,Y1,ST,IAs RForm1.ScaleHeight 初始化半X=Form1.ScaleWidth/2Y=Form1.ScaleHeight/2ST 初始化ForI=0To6.283185StepSTX1=R*Cos(I)+XY1=R*Sin(I)+Circle(X1,Y1),R*0.8 绘制圆,半径为0.8RNextIEnd2步10.13所示的圆环艺【例10.9】在窗体上绘制出随机圆或椭圆,半径也是在一定范围内做随化。(需要RND)绘制多个随机圆或椭圆的操作步骤如下:1步EXEDblClick事件中输入PrivatePrivateSubForm_DblClick()DimiAsIntegerDimX,Y,R,ZAsSingleFori=1To36X=3888*RndY=2888*RndR=288*RndZ=1*RndCircle(X,Y),R,,,,NextEnd其中Z2步10.1436个图10.13艺术图 图10.14绘制随机圆(椭圆画图Pset方Object.PSetObject.PSet[Step](x,y),ObjectObjectStepCurrentXCurrentY属性提供的3)(x,y)Single型(单精度浮点数),即被设置点的水平(x轴)和垂直(y轴)坐标。ColorLong型(长整型数)RGB颜色。如果ForeColor属性值。DrawWidth不能用在不能用在With…EndWith的效果(MouseDown事件)。实现多彩点的具体操作步骤如1步EXEMouseDown事件中PrivatePrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XSingle,YAsDimR,G,BAsSingleR=255*RndG=255*RndB=255*IfButton=1ThenDrawWidth=20*Rnd+1PSet(X,Y),RGB(R,G,B)EndEnd 三个Single变当单击的是鼠标左2步运行程序,在窗体的空白处任意单击鼠标,则在窗体上的相应显示出大小及10.14所示,多彩缤纷的效果。10.15输出彩色画图Point方Object.Point(x,Object.Point(x,ObjectObject,则带有焦点的窗体Object。x,y——必需的,均为单精度值,指示窗体或框的ScaleMode属性中该点的水平(x轴)和垂直(y轴)坐标。如果由如果由x和y坐标 的点位于Object之外,则Point方法将返回-110.11】Point方法扫描小窗体上的信息,根据返回值在大窗体上的坐标系统对1步EXEForm2的大小调整为如10.16Form110.17所示,此举是为了制作放大的效果:图10.16小窗 图10.17大窗2步Form1ClickLoad事件中输PrivatePrivateSubForm_Click()Dimi,jAsIntegerForm1.Scale(0,0)-(200,Form2.Scale(0,0)-(200,Fori=1ToForj=1To设置窗体Form1的坐标系设置窗体Form1绘制IfForm2.Point(i,j)=FalseThenForm1.CurrentX=iForm1.CurrentY=jPrint"."EndIfNextjNextiEndPrivateSub '显示窗体Form2Form2.AutoRedraw=Ture '设置可绘制属性Form2.FontSize Form2.FontBold 设置粗Form2.PrintAB End步10.18的效果。10.18打印输画图Cls方ObjectObjectCls方法的功能是清除图形和打印语句在运行时所产生的文本和图形,而设计时在Cls之后,ObjectCurrentXCurrentY0FormPictureClsCls之前Cls之后,ObjectCurrentXCurrentY01步EXE工程,进入代码编辑窗口,在窗体的单击事件和双击事件中输PrivatePrivateSubForm_Click()Line(500,500)-(2500,EndPrivateSubForm_DblClick()Line(2500,500)-(500,End清除窗清除窗2步10.19 图10.19第一次单 图10.20第二次单第3步若将单击事件和双击事件的代码PrivateSubForm_Click()Form1.AutoRedrawPrivateSubForm_Click()Form1.AutoRedraw=FalseForm1.AutoRedraw=TrueLine(500,500)-(2500,EndPrivateSubForm_DblClick()Form1.AutoRedraw=FalseForm1.AutoRedraw=TrueLine(2500,500)-(500,End添加AutoRedraw添加AutoRedraw属性设添加AutoRedraw添加AutoRedraw属性设4步ClsAutoRedrawCls失效,但依旧可以绘制10.21所示。ClsCls失10.21经过单击和双VisualBasic中,用户可以借助图形控件来快速实现图形效果的目的。常用的图形控给应用程序添加框控。框(PictureBox)控件可以显示来自位图、图标以及来自增强的图元文件、JPEG或GIF文件的图形。如果控件不足以显示整幅,则裁剪以适应控件的大小框控10.22所示。。图10.22框控在应用框控件时,有三个重要属性需要着重学习,即Picture属性、AutoSize属性Align属性。PicturePicture属性的作用是用来返回或设置控件中要显示的,用户可以选择通过属性窗Object.PictureObject.PictureLoadPicture("图形文件(包括路径与名称其中的参数Object是指框控件名称AutoSizeAutoSize属性的作用是决定图形框控件是否自动改变大小以显示的全部内容。当AlignAlign属性的作用是返回或设置一个值,决定框控件在窗体上的对齐方式。其语法其中的参数Object在此处是指框控件,Number设置值的含义如下当Number为0时,用户可以在设计时或在程序中指定框的大小和位置。当Number为1时,框在窗体的顶部显示,其宽度等于窗体内部宽度。当Number为2时,框在窗体的底部显示,其宽度等于窗体内部宽度。当Number为3时,框在窗体的左部显示,其高度等于窗体内部高度。当Number为4时,框在窗体的右部显示,其高度等于窗体内部高度,如图Number410.23图形框控件可以接收Click(单击)事件与DblClick(双击)事件还能在框中使用Cls、Print方法。在实际使用框的过程中,经常是作为一种图形容器来使用,因此常是跟其他控件搭配使用,例如单击按钮,图形框自动装入等。第1步新建标准EXE工程,在窗体上添加一个框控件和两个单选按钮控件,并10.24所示。第2步设置窗体Load事件,即将框控件设置为大小自动调节功能,在代码编辑PrivateSubForm_Load()Picture1.AutoSizePrivateSubForm_Load()Picture1.AutoSize=TrueEnd设置AutoSize属性为PrivatePrivateSubOption1_Click()DimiAsIntegerPicture1.Picture=Fori=1To卸载窗Picture1.Line(3000*Rnd,3000*Rnd)-(3000*Rnd,3000*Rnd)NextiEnd第4步设置【】单选按钮的单击事件,实现装载的效果,即在代码编辑窗口PrivateSubOption2_Click()PrivateSubOption2_Click() 清除线段Picture1.PictureLoadPicture("C:\我的中国心.ico")End10.25所示。 图10.24添加控 图10.25绘制线第6步单击【】单选按钮,框中的线段清楚,并同时装载,如图10.26显示给应用程序添加图像控图像框(Image)Image10.27所示。10.27图像框控由于图像框控件使用较少的系统资源因此重画起来比框控件要快但是它只支持跟框控件一样,图像框控件也具有比如Name、Picture等属性,但在图像自适应调PictureBoxAutoSizeImage1步EXE工程,在窗体上添加一个图像框控件和两个命令按钮控件,将10.28所示。10.282步Load事件,即将图像框控件设置为大小自动调节功能,注意,此处使用Strech属性而非框控件的AutoSize属性,在代码编辑窗口内,输入如下代码:PrivateSubForm_Load()Image1.StretchPrivateSubForm_Load()Image1.Stretch=TrueEnd将Strech属性设置为第3步设置【1】命令按钮和【2】命令按钮功能,实现装载不同的功PrivatePrivateSubImage1.PictureLoadPicture("C:\我的中国心.ICO")Form1.Caption="我的中国心"EndPrivateSubImage1.PictureLoadPicture("C:\兔子.jpg")Form1.Caption="兔子"End第4步运行程序,单击【图像1】按钮,在图像框上显示中国心,并在窗体标题10.30所示。 图10.29显示图像 图10.30显示图像给应用程序添加形状控10.31所示。形状形状控10.31BorderStyle0—TransParent1—Solid2—Dash3—Dot4—Dash-Dot5—Dash-Dot-Dot6—InsideSolidBorderStyleBorderWidth属性的设置。如果不是1BorderStyle06BorderStyle设置成1FillStyle0—Solid1—TransParent2—HorizontalLine3—VerticalLine4—UpwardDiagonal5—DownwardDiagonal6—Cross7—DiagonalCrossShape1—Rectangle2—Square3—Oval4—Circle5—RoundedRectangle6—RoundedSquare【例10.15实现窗体上的形状控件定时随化的效果(利用Shape控件的属性设置),1步EXE工程,在窗体上添加一个Shape控件、一个命令按钮控件和一Caption10.322步设置窗体启动事件,即设置定时器控件启动时无效,即在代码编辑窗口中输PrivateSubForm_Load()Timer1.EnabledPrivateSubForm_Load()Timer1.Enabled=FalseEnd第3步一个函数ShapeChosen,实现形状调用功能,在代码编辑区内输入如下代PrivatePrivateFunctionShapeChosen(iAsSelectSelectCaseICase0ToShape1.BorderStyle=Shape1.Shape=Shape1.FillStyle=Case1ToShape1.BorderStyle=Shape1.Shape=Shape1.FillStyle=Case2ToShape1.BorderStyle=Shape1.Shape=Shape1.FillStyle=Case3ToShape1.BorderStyle=Shape1.Shape=Shape1.FillStyle=Case4ToShape1.BorderStyle=Shape1.Shape=Shape1.FillStyle=Case5ToShape1.BorderStyle=Shape1.Shape=Shape1.FillStyle=7EndSelectEnd使用SelectCase4步设置定时器的TimerShapeChosenPrivatePrivateSubTimer1_Timer()ShapeChosen(6*Rnd)End产生的参数在0~6内变步PrivatePrivateSubIfCommand1.CaptionThenTimer1.Enabled=TrueTimer1.Interval=1000Command1.Caption="停止"Timer1.Enabled=FalseCommand1.Caption"EndEnd'实现开始 实现停步图10.33初始状 图10.34开始变VisualBasic中的许多控件均有确定控件显示颜色的属性。当然,这些颜色属性也有些颜色BackColorBackColor属性,则已有的图形将会被新的背景颜色所覆盖。ForeColorForeColorBorderColorFillColorFillColorCircleLine方法创建的方框,设置填充RGB颜色函数的RGB颜色函数的作用是返回一个LongRGB RGB(red,green, red——必要参数,为VariantInteger)0~255,表示颜色的红green——必要参数;为VariantInteger)0~255,表示颜色的RGB颜色值指定红、绿、蓝三原色的相对亮度,生成一个用于显示的特定颜色。RGB的任何参数的值,如果超过255,会被当作255。10.3常见的标准颜颜黑000兰00绿00青0红000黄0白多编文字处理——典型文字特第1步新建标准EXE工程,在窗体上添加一个控件和一个命令按钮控件,将标Caption10.35所示。、第2步设置窗体的启动事件,为窗体控件和定时器控件初始化,即在代码编辑、图10.35添加控件和定时器控PrivateSubForm_Load()Form1.BackColorPrivateSubForm_Load()Form1.BackColor=vbBlackLabel1.AutoSize=设置Label1.Caption=" Label1.ForeColor=vbYellowLabel1.BackColor=vbBlackLabel1.FontSize=1Label1.FontBold=TrueLabel1.FontName隶书Label1.Alignment=2Timer1.Enabled=TrueTimer1.Interval=20End'设 '设 内'设 '设 设置初始大设置加设置字设置对齐显设置定时器有效及时间间3步Timer事件,制作字体逐步变大的动画效果,即在代码编辑窗PrivatePrivateSubIfLabel1.FontSize<88ThenLabel1.FontSize=Label1.FontSize+1Label1.Visible=FalseEndIfEnd文第4步运行程序,文本“多编程”由点逐步变大,图10.36和图10.37便是其中图10.36动画状态 图10.37动画状态MultimediaMCI控件应MultimediaMCI控件用于管理控制接口(MCI)设备上的多文件的记录与回放。从概念上说,这种控件就是一组按钮,它被用来向诸如声卡、MIDI序列发生器、CD-ROM驱动器、CD器和磁带记录器及器等设备发出MCI命令。MCI控件还支持Windows(*.avi)文件的回放。MultimediaMCIVisualBasic标准控件工具箱的默认控件,因此在使1步VisualBasic第2步切换“控件选显卡下在列表框中选【 MultimediaControl6.0】复选框,如图10.38所示。10.383步MultimediaMCI控件添加至控件工具箱中,其显示10.39所示,图10.39MultimediaMCI控 图10.40添加至窗体MultimediaMCI控件加到窗体上,它在窗体中的外观如图10.40MultimediaMCICD机或10.4MultimediaDeviceType属性要求设备类文件类描设备类文件类描CD音频器DigitalAudio器(notGDI-未定义MCI设覆盖设音响设备数字接口(MIDI)文10.5MultimediaMCI10.5MultimediaMCI控件的基本属属说决定多MCI控件是否能自动启动或控件中的每个按钮,取值为发生/False不发生指定要打开的MCI续续属属说用于设定是或对事件产生响应,取值为:True可用/False不可用。在执行程指定Step命令向前单步、Back命令向后单步的帧获得或设置是否能将这个控件作为OLE放置目标。取值为:0mciOLEDropNone(无)/1mciOLEDropManual(手动)(水平,此为默任值)/1mciOrientVert(垂直)指定支持记录的MCI设备的当前记录模式。取值为:0获得或设置此对象在父窗体的编号(父窗体中对象响应Tab键的顺序属说指定连续StatusUpdate事件之间的毫秒设置此对象的可见性,取值为:True该对象可见False该对象不可MCI命令。它们可控制多种多设备,其中的许多命令直接与Multimedia控件的按钮对应。例如,Play命令就与【】按钮相对应。MultimediaVisualBasicPlayClose等命令在Win32(RAPIMCI命令结构中都有等价命令。例如,PlayMCI_PLAY10.6列MultimediaMCIWin32命令。10.6MCI命命MCI命描MCI打开MCI设MCI关闭MCI设MCI用MCI设备MCI_PAUSE停止MCI设使用Seek使用Seek命令跳到下一个曲目的起始位置(如果已在最录制MCI从CD驱动器出音频MCI mand= Multimedia控件放置到窗体中后,不管它被设置为可见的还是不可见的,第一步都是要MCI设备。为做到这一点,需要设置一些运行时才可用的属性。例如: MMControl1.Notify=FalseMMControl1.Wait=TrueMMControl1.Shareable=FalseMMControl1.DeviceType=提供了很有用的反馈信息,以该命令成功还是失败;Wait属性指定Multimedia控件是否等到下一命令执行完毕,才将控制权还给应用程序;Shareable属性限制或允许其它应用程序或进程使用该设备;DeviceType属性被用来指定MCI设备的类型。最后,OpenMCI mand=WAV音频文件案、选择音频文件、停止和退出等功能并有进度显示、实现简易WAV音频器的、1步EXEMultimediaMCI2步MultimediaMCI控件和两个命令按钮控件,并将窗体的10.41所示。第3步实现实例效果还需要两个控件:Slider控件(用于显示进度)和公用框框,选择WindowsCommonControls6.0复选框和CommonDialogControls6.010.4210.43所示。图10.41添加控 图10.42选择Slider控4步单击【确定】按钮便将这两种控件添加至控件工具箱中,然后将Slider控件、公用框控件和定时器添加至窗体上,调整大小和位置后显示效果如图10.44所示。步 图10.43选择公用框控 图10.44添加剩余控PrivatePrivateSubCommonDialog1.Filter="音频 '设置过滤Timer1.Interval 设置定时器间隔时间,0.5End第6步接着设置【打开】按钮,实现调出“打开”框,并将选择的文件名赋给MultimediaMCIMultimediaMCI控件及其属性,即直接双击【打开】PrivatePrivateSub'打开“打开 MMControl1.FileName=IfCommonDialog1

温馨提示

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

最新文档

评论

0/150

提交评论