北京电大 Visual Basic程序设计 第6章 图形图像和多媒.ppt_第1页
北京电大 Visual Basic程序设计 第6章 图形图像和多媒.ppt_第2页
北京电大 Visual Basic程序设计 第6章 图形图像和多媒.ppt_第3页
北京电大 Visual Basic程序设计 第6章 图形图像和多媒.ppt_第4页
北京电大 Visual Basic程序设计 第6章 图形图像和多媒.ppt_第5页
已阅读5页,还剩125页未读 继续免费阅读

下载本文档

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

文档简介

1、1,第 6 章 图形图像和多媒体 应用程序设计方法,2,5.1 指针式时钟和VCD程序任务 随着多媒体技术发发展,图形程序界面和多媒体程序开发已成为目前非常流行的一种程序开发方式。VB具有强大的图形处理能力和多媒体开发功能,利用它可以在很短的时间内绘制恩已形状的图形,开发出包括各种功能特效的多媒体应用程序。 本章通过指针式时钟和VCD播放器持续设计实例介绍图形图像和多媒体应用程序设计的基本方法。,3,6.1.1 指针式时钟程序,1.任务概述:VB提供了图形控件和图形方法两种绘图方式。指针时钟程序主要利用图形控件设计表盘,通过时钟控件控制时钟的转动,采用图形方法动态移动指针。所用控件如图所示:,

2、Shape形状控件,Line线条控件,Picture图片框控件,Image图像框控件,4,2. 界面设计,5,控件及其主要属性,6,3. 代码设计,在代码编辑器窗口的通用部分声明常量 Const Pi = 3.141592653 Private Sub Form_Load() 设置用户的坐标系统 Form1.Scale (-14, 14)-(14, -14) End Sub,7,3. 代码设计,Private Sub Timer1_Timer() Dim X As Integer Dim Y As Integer Dim Sec, Min, Hr As Integer 计算当前的秒、分、时的数

3、值 Sec = Second(Time) Min = Minute(Time) Hr = Hour(Time) 清空窗体 Form1.Cls,8,3. 代码设计,绘制秒针,其中用到的数字9起放大作用 Form1.DrawWidth = 2 设置线条的宽度 X = 9 * Cos(Sec - 15) * Pi / 30) 计算线条另一端点的x坐标 Y = 9 * Sin(-(Sec - 15) * Pi / 30) 计算线条另一端点的y坐标 Form1.Line (0, 0)-(X, Y), vbRed 画一条红线表示秒针 绘制分针,其中用到的数字8起放大作用 Form1.DrawWidth =

4、 3 设置线条的宽度 X = 8 * Cos(Min - 15) * Pi / 30) 计算线条另一端点的x坐标 Y = 8 * Sin(-(Min - 15) * Pi / 30) 计算线条另一端点的y坐标,9,3. 代码设计,绘制时针,其中用到的数字6起放大作用 Hr = Hr + Min / 60 Form1.DrawWidth = 5 设置线条的宽度 X = 6 * Cos(Hr - 3) * Pi / 6) 计算线条另一端点的x坐标 Y = 6 * Sin(-(Hr - 3) * Pi / 6) 计算线条另一端点的y坐标 Form1.Line (0, 0)-(X, Y) 画线表示分针

5、 End Sub 演示,10,6.1.2 VCD播放器应用程序,1. 任务概述 利用VB可以编写多媒体播放软件。本程序的任务是能够浏览要播放的文件,并播放 .avi, .dat, .waf等格式的多媒体文件。程序具有快进、快退、暂停、弹碟等基本功能。运行界面如图所示。,11,2. 界面设计,(1)创建一个“标准EXE”工程,选中“工程”菜单中的“部件”选项,在弹出的“部件”对话框中选择“Microsoft Multimedia Control”, “Microsoft Common Dialog Control 6.0”和 “Microsoft Windows Common Control 6

6、.0”,将CommonDialog控件、MMControl控件和Slider控件添加到根据箱中。 (2)窗体添加“命令”按钮和“关闭按钮”。 (3)窗体添加CommonDialog 控件、Picture控件、MMControl控件和Slider控件。,12,3. 代码设计,(1)窗体Load事件代码 Private Sub Form_Load() 将Picture1设置为视频回放的界面 MMControl1.hWndDisplay = Picture1.hWnd End Sub,13,3. 代码设计,(2)打开按钮Click事件代码 Private Sub Command1_Click() 在

7、未选择文件时,文件名为空字符 CommonDialog1.FileName = 设置文件的过滤方式,可显示文件名为.wav和.dat的文件 CommonDialog1.Filter = (*.wave)*.wav(vcd*.dat)*.dat 初始的文件过滤方式为*.wav CommonDialog1.FilterIndex = 2 建立打开文件的通用对话框 CommonDialog1.ShowOpen 打开一个文件后关闭前一此被打开的多媒体设备 MMControl1.Command = Close,14,3. 代码设计,判断如果打开的文件是*.wav格式,则执行下面的语句 If Common

8、Dialog1.FilterIndex = 2 Then 设置多媒体设备类型为WaveAudio MMControl1.DeviceType = WaveAudio 设置打开的文件为通用对话框中选择的文件 MMControl1.FileName = CommonDialog1.FileName 打开文件 MMControl1.Command = Open MMControl1.Command = Play 设置Slider控件的最小值 Slider1.Min = 0 设置Slider的最大值为文件的长度 Slider1.Max = MMControl1.Length,15,3. 代码设计,如果

9、打开的文件是*.dat格式,则执行下面的语句 ElseIf CommonDialog1.FilterIndex = 1 Then 设置多媒体设备类型为WaveAudio MMControl1.DeviceType = MpegVideo 设置打开的文件为通用对话框中选择的文件 MMControl1.FileName = CommonDialog1.FileName 打开文件 MMControl1.Command = Open MMControl1.Command = Play 设置Slider控件的最小值 Slider1.Min = 0 设置Slider的最大值为文件的长度 Slider1.M

10、ax = MMControl1.Length End If End Sub,16,3. 代码设计,(3)MMControl1控件的StatusUpdate事件代码 Private Sub MMControl1_StatusUpdate() 设置Sider1控件的滑杆位置 With MMControl1 If DeviceID 0 Then If Slider1.Value MMControl1.Position Then Slider1.Value = MMControl1.Position End If End With End Sub,17,3. 代码设计,(4)Slider控件的Scro

11、ll事件代码 Private Sub Slider_Scroll() 通过Slider选择文件的播放位置 MMControl1.To Slider.Value MMControl1.Command = Seek MMControl1.Command = Play End Sub,18,3. 代码设计,(5)窗体的Unload事件代码 Private Sub Form_Unload(Cancel As Integer) 关闭多媒体设备 MMControl1.Command = Stop MMControl1.Command = Close End Sub (6)关闭按钮的Click事件代码 Pr

12、ivate Sub Command2_Click() 退出应用程序 End End Sub,19,6.2 VB坐标系统和颜色,在VB中,对象存放在它的容器内。例如,窗体在屏幕中,屏幕是窗体的容器。在窗体内绘制对象时,窗体是容器。在图片框在绘制图形,图片框是窗体。对象在容器在的定位需要使用容器的坐标系统。,20,6.2.1 坐标系统,1. 窗体的缺省坐标系 构成一个坐标系需要三个要素:坐标原点、坐标轴度量单位、坐标轴方向。VB坐标系统的缺省坐标原点(0,0)在对象的左上角,X坐标向右正方向,Y坐标向下为正方向。 窗体对象坐标系是由它的ScaleTop, ScaleLeft, ScaleWidth

13、, ScaleHeight属性决定的,Scale是“标尺”的含义。窗体的另外四个属性,即Top, Left, Width, Height表示了窗体的大小及屏幕标准坐标系上的位置。,21,22,23,2. 控件在窗体上的坐标 窗体是控件的容器,控件在窗体上的坐标是用其Top和Left属性定义的。Width,Height属性表示宽度和高度,它决定了控件的大小。,24,3. 其它控件容器的坐标系,除窗体外,图片框(PictureBox)等控件也可以作为其它控件的容器使用,也具有坐标系定义。,图片框的主要 作用一是对控 件进行分组, 二是增加界面 的立体感。,25,4. 坐标系的度量,VB的坐标单位由

14、对象的ScaleMode属性确定,缺省为Twip(缇)。用来保证应用程序对屏幕元素的定位和比例在所有显示器是均保持一致。,26,5. Scaletop, Scaleleft等与Top,Left的区别,(1)窗体的Top,Left,Width和Height属性的单位永远是Twip,而ScaleTop,ScaleLeft等属性可以通过ScaleMode属性任意改变单位。 (2)窗体的Top,Left,Width和Height属性是相对屏幕坐标而言的,而ScaleTop,ScaleLeft,ScaleWidth,ScaleHeight则定义了窗体自己的坐标系统,窗体上的所有控件将以此为坐标基础。 (

15、3) ScaleWidth,ScaleHeight是指对象的内部尺寸,不包括边框厚度以及菜单或标题等高度。而窗体的尺寸则由Width和Height属性决定。,27,6. 当前坐标,当在窗体等容器绘制图形或输出结果时,经常要将它们定位在某一希望的位置,这时就必须获得某一点的坐标,即当前坐标。VB 使用CurrentX和CurrentY属性设置返回当前坐标的水平坐标和垂直坐标。 例如,在点(13,2)处打印“X”,可使用以下语句: CurrentX=13:CurrentY=2:Print:”X”,28,7. 自定义坐标系统 (1)方法1:使用ScaleLeft,ScaleTop,ScaleWidt

16、h和Scaleheight属性设置坐标系统 ScaleLeft和ScaleTop是指容器左上角坐标,其缺省值为。ScaleWidth和ScaleHeight属性用于设置窗体或图片框等容器的净宽度和净高度,即右下角的坐标为(ScalrLeft+ScaltWidth,ScaleTop+ScaleHeught)。 当我们改变ScaleLeft,ScaleTop的值后,坐标系的轴或轴将按此值平移后形成新的坐标原点,因此也就形成了新的自定义坐标系统。例如 Form1.Scale(-14,14)-(14,-14) 将坐标原点设置在窗体中心,左上角的坐标为(-14,14),右下角的坐标为(14,-14),X

17、轴的正方向向右,Y轴的正方向向上。,29,Form1.Scale(-14,14)-(14,-14)自定义的坐标系统,30,Form1.Scale(-14,14)-(14,-14)可等同于下面的程序: Private Sub Form_Click() Cls Form1.ScaleLeft = -14 Form1.ScaleTop = 14 Form1.ScaleWidth = 28 Form1.ScaleHeight = -28 Line (-14, 0)-(14, 0) 画X轴 Line (0, 14)-(0, -14) 画Y轴 CurrentX = 0: CurrentY = 0: Pri

18、nt 0 标记坐标原点 CurrentX = 13: CurrentY = 2: Print X 标记X轴 CurrentX = 0.5: CurrentY = 13: Print Y 标记Y轴 End Sub,31,程序运行结果:,32,(2)方法2:使用Scale方法设置坐标系,我们在指针时时钟程序中使用的就是Scale方法,使用此方法可直接定义对象左上角坐标和右下角坐标。其语法格式如下: 对象名.Scale(x1,y1) - (x2,y2) 对象名可以是窗体,图片框等,若省略对象名,则为带有焦点的窗体对象。(x1,y1)为左上角坐标,(x2,y2)为右下角坐标。与ScaleLeft ,S

19、caleTop,ScaleWidth,ScaleHeight属性的对应关系为: X1=ScaleLeft ,y1=ScaleTop , x2=x1+ScaleWidth,y2=y1+ScaleHeight 当Scale后面不带参数时,使用默认的坐标系统,对象的左上角为坐标原点(0,0)。,33,采用默认坐标系统画直线程序,Private Sub Command1_Click() Cls Scale Line (0, 0)-(500, 500) End Sub,34,采用默认坐标系统画直线程序效果,35,采用自定义坐标系统画直线程序,Private Sub Command2_Click() Cl

20、s Form1.Scale (0, 500)-(500, 0) Line (0, 0)-(500, 500) End Sub,36,采用自定义坐标系统画直线程序效果,37,P168 习题 二、填空题,1. 若窗体Form1左上角坐标为(-250,300),右下角坐标为(350,-200),则X轴的正方向向 ,Y轴的正方向向 。 答案:右 上,38,P168 习题 二、填空题,2. 当scale方法不带参数时,则采用 坐标系。 答案:默认的 8. 容器的实际高度和宽度由 和 设置。 答案:Width Height,39,P168 习题 三、问答题,1. 窗体的Height, Width属性和Sc

21、aleHeight, ScaleWidth属性有什么区别? 答案: ScaleWidth,ScaleHeight是指对象的内部尺寸,不包括边框厚度以及菜单或标题等高度。而窗体的尺寸则由Width和Height属性决定,40,6.2.2 使用VB颜色,VB有两个弹色属性:BackColor和ForeColor,分别用于定义背景颜色和文本/图形的颜色。 VB还提供了QBColor和RGB两个颜色函数。其中QBColor能选择16种颜色:,41,1.Line控件 Line(线条)控件用于在窗体、框架或图片框画直线。主要属性有: (1)x1,x2,y1,y2属性 用于设置一条知直线的两个端点坐标,即(

22、x1,y1)和(x2,y2)。 (2)BorderWidth属性 用来设置直线的粗细,默认值为1。 (3)BorderColor属性 用来设置直线的颜色,默认为黑色。 (4)BorderStyle属性 用来设置直线的线型。,6.3 相关控件介绍 6.3.1.Line和Shape控件,42,BorderStyle属性的设置值,43,2.Shape控件,Shape(形状)可以用来画矩形、正方形正方形、椭圆、圆、圆角矩形及圆角正方形。主要属性有: (1)Shape属性用于设定几何图形的类型。,44,2. BorderWidth属性,表示Shape控件边框的宽度,默认值为1。 (3)FillStyle

23、属性表示形状的填充格式。,45,(4)FillColor属性 表示形状的填充格式颜色,当FillStyle 属性为1时,该属性无效。 (5)BorderColor属性 用来设置边框的颜色,默认值为黑色。,46,P167 习题 一、单选题,6. 要绘制多种样式的直线,需要设置Line控件( )属性。 A. Shape B. BorderStyle C. FillStyle D. Style 答案:B,47,6.3.2 Image和PictureBox控件,Image(图像框)和Picture(图片框)都是用来显示图形文件的控件,它们可以加载 .bmp, .ico, .wmf, .gif 等类型的

24、图形。Picture控件不仅显示图形图片,还可以作为其它控件的容器,支持绘图和输出文字,功能比控件强。,48,1. Picture属性 Image控件和PictureBox控件都具有Picture属性。要在图像框在显示一幅图像,可以在属性窗口中Picture属性进行设置,也可以使用LoadPicture函数来设置,其格式如下: .Picture=LoadPicture(图像文件名) 要清除图片框中的图像,可以在属性窗口中直接删除其Picture属性的内容,也可以在代码中使用LoadPicture函数进行删除,其格式为: .Picture=LoadPicture(),49,2. Image的St

25、retch属性,Stretch属性用于确定图像框然后与图片相适应,其取值为True和False。当Stretch属性设置为True时,所装入的图像能够自动缩放以适应图像框的大小。为False时,图像框将适应图像的大小。,50,Stretch属性为True时,图像自动适应图像框的大小。,51,Stretch属性为False时,Image控件根据图片调整大小。,52,3. PictureBox的AotuSize属性 PictureBox的AutoSize属性用于确定图片框如何与图片相适应。默认为False.当属性值为False时,图片框不能自动改变大小以适应其中的图形,若图像比图片框大,则超出的部

26、分将被截去;当属性值设置为True时,图片框自动调整大小,以显示图片的全部内容。 PictureBox控件还可以作为其它控件的容器,支持绘图和输出文字,而Image则不能。将PictureBox的AutoRedraw属性设置为True后,就可以用Point,Line和Circle等方法在图片框上绘图,还可以用Print方法在图片框上输出文字。,53,AutoSize属性为False,54,AutoSize属性为True,55,P167 习题 一、单选题,1.下面对象中不能作为容器的是( )。 A. 窗体 B. Image控件 C. PictureBox控件 D. Frame控件 答案:B,56

27、,P167 习题 一、单选题,8. 下面关于PictureBox控件与Image控件说法不正确的是( )。 A. PictureBox控件可以作为控件容器,因此比Image占用资源多 B. Image能够自动调整大小以适应载入的图片 C. PictureBox除具有Image的所有特性外,还能作为容器 D. PictureBox能使图片自动调整大小以适应PictureBox的大小。 答案:A,57,6.3.3 MMControl(Multimedia)控件,多媒体控件(MMControl)是一个专门用来多媒体控制接口MIC设备的ActiveX控件,该控件能够管理的主要设备有:声卡、CD_ROM

28、驱动器、音频播放器、视频播放器等。它可以对这些设备进行常规的启动、播放、前进、后退、停止等管理操作。其外观如图所示:,倒带,快进,播放,暂停,回倒,步进,停止,录音,弹出,58,1. MMControl控件的主要属性,(1)AutoEnable属性 该属性用于决定系统是否具有自动检测MMControl控件各按钮的状态。当属性值为True(缺省值)时,系统见自动检测MMControl控件各按钮的状态,此时若有按钮为有效状态,则会以黑色显示,若无效,则以灰色显示;当属性值为False时,系统不会检测MMControl控件的各按钮状态,所有按钮将以灰色显示。,59,(2)PlayEnabled属性

29、该属性用于决定MMControl控件的各按钮是否处于有效状态。缺省值为False,即无效状态。当要使Play按钮、Pause按钮时,可以在空间所在窗体的Load事件中添加如下代码: Private Sub Form_Load() MMControl1.AutoEnable=False MMControl1.PlayEnable=True MMControl1.PauseEnable=True End Sub,60,(3)PlayVisible属性 该属性用于决定 MMControl控件各按钮是否可视。当Playvisible属性值为True时(缺省值),按钮可视;当Playvisible属性值

30、为False时,按钮不可视。,61,(4)Command属性,Command属性用于指定将要执行的MCI命令。可以控制执行14个控制命令。,62,(5)DeviceType属性,用于指定多媒体设备的类型:AVI动画(AVIVideo),CD音乐设备(CDAudio),VCD文件(DAT),数字视频文件(DigitalVideo),WAV声音播放设备(WaveAudio),MIDI设备(Sequencer)和其它类型。 (6)Length属性 返回所使用的多媒体文件长度。 (7)Frames属性 指定Back或Step命令后退或前进的帧数。若Frames属性设置为3,则每次按Step按钮,前进3

31、帧。 (8)Notify属性 决定MMControl控件的下一条命令执行后,是否产生或回调事件(CallbackEvent)。为True则产生。,63,(9)Mode属性,返回一个已打开的多媒体设备的状态。,64,2. MMControl控件的主要事件 (1)Click事件 (2)Done事件 当Notify属性设置为True后所遇到的第一个MCI命令结束时触发该事件,其格式为: Private Sub MMControl_Done(Notify_Code As Integer) 每一次Notify属性仅对一条MCI控制命令有效,用户可在Done事件中决定如何进一步处理程序。 (3)Statu

32、sUpdate事件 按UpdateInteval属性所给的时间间隔自动发生。该事件运行应用程序更新显示,以通知用户当前MCI设备的状态。应用程序可从Position,length 和 Mode等属性中获得状态信息。,65,P167 习题 一、单选题,7. 在VB中,进行音频和视频处理都要用到多媒体控制接口,通过它实现对音频设备、视频设备及其它设备的操作,这其中最重要的是( )。 A. MMControl控件 B. Data控件 C. SysInfo控件 D. 媒体流处理技术 答案:A,66,P168 习题 二、填空题,6. VB中管理MCI设备的控件是 。 答案:MMControl控件 7.

33、打开MMControl控件控制的多媒体设备的命令是 。 答案:Command属性的Open命令,67,6.4 绘图方法,PSet可以用一给定的颜色在窗体或图片框上指定是位置画图,点的大小由对象的DrawWigth属性指定。 格式:对象名Step(x,y)Color 对象名是使用PSet方法的对象名,可以是窗体和图片框;Pset参数可选,表明下一个画点的位置相对当前点的坐标;(x,y)用来设置点的坐标位置坐标;Color用来指定点的颜色。,68,例如:设计以下程序,在窗体上随机地显示若干彩色斑点。,69,添加代码:,Private Sub Form_Click() Dim x, y, r, g,

34、 b As Integer For i = 1 To 200 设置循环次数 ScaleWidth = 100 设置比例 ScaleHeight = 100 DrawWidth = 10 设置点的大小 x = Rnd * 100 设置点的随机坐标 y = Rnd * 100 r = Rnd * 255 设置点的随机颜色 g = Rnd * 255 b = Rnd * 255 Form1.PSet (x, y), RGB(r, g, b) 画点 Next End Sub 演示,70,P168 习题 四、,1. 函数图形程序。用Pset方法在图形框Picture1 内绘制y=Sinx在-到之间的图形

35、。运行结果如图所示。,71,答案:程序代码为: 声明常量 Const pi = 3.141592653 Dim x, y As Double Private Sub Form_Load() 自定义坐标 Picture1.Scale (-1.3 * pi, 1.5)-(1.3 * pi, -1.5) End Sub Sub Command2_Click() End End Sub,72,答案:程序代码为: Private Sub Command1_Click() Picture1.Line (-1.3 * pi, 0)-(1.3 * pi, 0) 画X轴 Picture1.Line (0, 1.

36、5)-(0, -1.5) 画Y轴 Picture1.CurrentX = 0: Picture1.CurrentY = 0: Picture1.Print 0 标记坐标原点 标记- Picture1.CurrentX = -1.05 * pi: Picture1.CurrentY = 0.2: Picture1.Print - 标记 Picture1.CurrentX = 0.95 * pi: Picture1.CurrentY = -0.05: Picture1.Print Picture1.CurrentX = 0.02: Picture1.CurrentY = 1: Picture1.P

37、rint 1 标记“1” Picture1.CurrentX = 0.05: Picture1.CurrentY = -0.9: Picture1.Print 1 标记“-1” 画正弦曲线 For x = -1 * pi To pi Step pi / 180 y = Sin(x) DrawWidth = 1 定义点的大小 Picture1.PSet (x, y), QBColor(0) 画点 Next x End Sub,73,6.4.2 画直线和矩形,Line方法用于画直线和矩形,语法如下: 格式:对象名.Line Step(x1,y1)- Step(x2,y2),Color,BF (1)

38、对象名可以是窗体、图片框等。 (2)(x1,y1)和(x2,y2)为一条直线的起点坐标和终点坐标。 (3)Step为可选参数,加入Step后坐标为相对于当前点的坐标。 (4)Color为可选参数,用于设置画线的颜色。 (5)BF为可选参数,B表示以(X1,Y1) 为左上角,(X2,Y2)为右下角画一矩形。F表示是否填充该矩形。,74,例:画直线和三角形,75,程序代码: Private Sub Form_Click() ScaleWidth = 100 ScaleHeight = 100 DrawWidth = 3 Line (10, 30)-(10, 80), vbRed Line -(40

39、, 80), vbGreen Line -(10, 30), vbBlue CurrentX = 50 CurrentY = 30 Line (50, 30)-(80, 80), vbRed, B End Sub,76,P167 习题 一、单选题,2. Line(100,100)- Step(400,400)将在窗体上的( )画一条直线。 A. (200,200)到(400,400) B. (100,100)到(300,300) C. (100,100)到(500,500) D. (100,100)到(400,400) 答案:D,77,P167 习题 一、单选题,4.执行命令 Line(300

40、,300)- (500,500)后,CurrentX=( )。 A. 500 B. 300 C. 200 D. 800 答案:A,78,P168 习题 二、填空题,3. 使用Line方法画矩形,必须使用关键字 。如果要填满线框,则使用关键字 。 答案:B F,79,6.4.3 画圆与椭圆,Circle方法用来画圆、椭圆、圆弧等。语法格式为: 对象名.CircleStep(x,y),Radius ,Color,Start,End,Aspet (1)(x,y)表示圆心坐标。 (2)Radius表示半径长度。 (3)Color表示颜色。 (4)Start,End表示设置圆弧或椭圆弧的起始角度,取值为

41、-2, 2 (5),Aspet为圆的纵轴和横轴的尺寸比。,80,例:使用Circle方法画以下图形:,81,程序代码:,Private Sub Form_Click() Const pi = 3.1415926 ScaleWidth = 100 ScaleHeight = 100 Circle (30, 30), 10 画标准圆 Circle (70, 30), 10, vbGreen, , , 0.5 Circle (70, 30), 10, vbRed, , , 2 画绿色椭圆 Circle (30, 75), 10, , -0.75 * pi, -0.25 * pi 画红色椭圆 Circ

42、le (75, 75), 10, , -0.25 * pi, -0.75 * pi 画扇形 Circle (75, 75), 10, , 1.25 * pi, 1.75 * pi 画弧 End Sub,82,P167 习题 一、单选题,3. 下列图形中不能用Shape控件绘制的图形是( )。 A. 矩形 B. 三角形 C. 正方形 D. 椭圆 答案:B,83,P168 习题 二、填空题,4. 以(2000,2000)为圆心,以800为半径,用ForeColor颜色绘制一个圆形,其实现代码是 。 答案:Circle(2000,2000),800,84,P168 习题 四、程序设计题,2. Cir

43、cle程序。使用Circle方法画出如图所示的波形。,85,程序代码:,Const pi = 3.141592653 定义常数 Private Sub Form_Load() Form1.Scale (-14, 14)-(14, -14) 自定义坐标系统 End Sub Private Sub Form_Click() DrawWidth = 3 设置线宽 Circle (0, 0), 8, QBColor(0) 画圆 Circle (0, 0), 8, QBColor(8), , , 2 画垂直椭圆 FillStyle = 6 Circle (0, 0), 8, QBColor(0), ,

44、, 0.5 画扁平椭圆 DrawWidth = 6 设置线宽 FillStyle = 1 设置填充图案 Circle (0, 8), 13.7, QBColor(0), 1.25 * pi, 1.75 * pi 画圆弧 End Sub,86,P168 习题 四、程序设计题,4. 指针式时钟拓展。清参考本章实例,应用ToolWindows技术开发如图所示的时钟程序。,87,P168 习题 四、程序设计题,4. 程序代码: 在代码编辑器窗口的通用部分声明常量 Const Pi = 3.141592653 Private Sub Form_Load() 设置用户的坐标系统 Form1.Scale (

45、-14, 14)-(14, -14) DrawWidth = 3 设置线宽 End Sub Private Sub Timer1_Timer() Text1.Text = Time Dim X As Integer Dim Y As Integer Dim Sec, Min, Hr As Integer 计算当前的秒、分、时的数值 Sec = Second(Time) Min = Minute(Time) Hr = Hour(Time),88,P168 习题 四、程序设计题,4. 程序代码: Form1.Cls 清空窗体 Form1.DrawWidth = 2 设置线条的宽度 X = 9 *

46、Cos(Sec - 15) * Pi / 30) 计算线条另一端点的x坐标 Y = 9 * Sin(-(Sec - 15) * Pi / 30) 计算线条另一端点的y坐标 Form1.Line (0, 0)-(X, Y), vbRed 画一条红线表示秒针 绘制分针,其中用到的数字8起放大作用 X = 8 * Cos(Min - 15) * Pi / 30) 计算线条另一端点的x坐标 Y = 8 * Sin(-(Min - 15) * Pi / 30) 计算线条另一端点的y坐标 Form1.Line (0, 0)-(X, Y) 画线表示分针 Hr = Hr + Min / 60 Form1.Dr

47、awWidth = 5 设置线条的宽度 X = 6 * Cos(Hr - 3) * Pi / 6) 计算线条另一端点的x坐标 Y = 6 * Sin(-(Hr - 3) * Pi / 6) 计算线条另一端点的y坐标 Form1.Line (0, 0)-(X, Y) 画线表示分针 End Sub,89,6.4.4 清除绘图区的内容,Cls方法用于清除对象中生成的图形和文本,将光标复位,即移动的原点。格式为: 对象名.Cls 例如,Form1.Cls可清除图形中的文本。 也可以使用以下语句删除Picture图片框中图形文件: Picture1.Picture=LoadPicture(),90,P1

48、67 习题 一、单选题,5. Cls可以清除窗体或图形框中的( )。 A. Picture属性设置的背景图案 B. 在设计时放置的控件 C. 程序运行时产生的图形和文字 D. 三者都是 答案:A,91,6.5 图像处理的基本方法,6.5.1 与图像相关的属性 1.设置线宽 利用DrawWidth属性可以设置所画直线的宽度。 格式:对象名.DrawWidth=线宽 例:在窗体上从左边至右边画一宽度递增的指线。,92,程序代码:,Private Sub Form_Click() Dim i As Integer CurrentX = 0: CurrentY = ScaleHeight / 2 Fo

49、reColor = QBColor(0) For i = 1 To 50 Step 3 DrawWidth = i 设置线的宽度 Line -Step(ScaleWidth / 10, 0) 画线 Next i End Sub,93,2. 设置线型,窗体、图片框的DrawStyle属性可以设置所画直线的线线型。 格式:对象名.DrawStyle=线型,94,3. 设置填充图案,FillStyle属性设置Shape控件所画图形的填充样式,共有 种图案。在设计阶段在窗口进行,在运行阶段通过颜色函数进行设置。格式如下: 对象名. Forecolor=RGB(红,绿蓝) 或 对象名. Backolor

50、=RGB(红,绿蓝),95,P168 习题 二、填空题,5. DrawStyle属性用于设置所画线的形状,此属性受到 的限制。 答案:DrawWidth,96,6.5.2 在设计时添加图片,在设计阶段有两种方法可以装入图形文件。 1.在属性窗口中利用Picture属性装入图形文件。 演示 2.使用剪贴版装入图形文件 其操作步骤是是将添加的图片复制的剪贴版中,单击“编辑”菜单中的“粘贴”命令,剪贴版中的图形击出现在图片框中。 演示,97,6.5.3 在运行时添加图片,在运行时可以用LoadPicture函数将图形文件装入窗体、图片框或图像框中。 语法:.Picture=LoadPicture 其

51、中,是指要装入到控件中的图形文件。如 Private Sub Form_Click() Picture1.Picture = LoadPicture(d:VB_N图片听课.jpg) End Sub,98,6.5.4 移动图片,用Move方法可以移动图片。 语法:Object.Move Left,top,Width,Height 参数Left是必要的,单精度型,Top,Width和Height是可选的,单精度型。,99,例:移动图片框,100,程序代码:,Private Sub Form_Load() Picture1.Picture = LoadPicture(d:VB_N图片听课.jpg)

52、End Sub Private Sub Command1_Click() Picture1.Move Picture1.Left + 200 End Sub Private Sub Command2_Click() Picture1.Move Picture1.Left, Picture1.Top + 300 End Sub,101,程序代码:,Private Sub Command3_Click() Picture1.Move Picture1.Left + 750, Picture1.Top + 350 End Sub Private Sub Command4_Click() Pictur

53、e1.Left = 100 Picture1.Top = 100 End Sub,102,6.5.5 改变图片尺寸,使用PaintPicture方法,可以在图形、图片框上的任何地方绘制图形,对图形进行拷贝,反转、改变大小等操作。,103,6.5.5 改变图片尺寸,例:使用PaintPicture方法实现放大位图功能。,104,程序代码:,Private Sub Form_Load() Picture1.Picture = LoadPicture(d:VB_N图片听课.jpg) End Sub Private Sub Command1_Click() 设sx,sy,sw,sh为源图形左上角坐标及

54、其宽、高 设dw,dh为目标图形的宽度和高度 Dim sw, sh, sx, sy, dw, dh As Integer sw = Picture1.ScaleWidth sh = Picture1.ScaleHeight dw = 3 * sw dh = 3 * sh 将原点设置到Picture1的左上角 sx = 0 sy = 0 Picture2.Picture = LoadPicture() Picture2.PaintPicture Picture1, 0, 0, dw, dh, sx, sy, sw, sh, vbSrcCopy End Sub,105,程序代码:,Private

55、Sub Command2_Click() End End Sub,106,6.6 播放多媒体信息的基本方法,利用MMControl多媒体控件进行变成时应主要考虑以下几点: 1.用DiviceType属性指定多媒体设备的类型。 2.用Filename属性指定要播放的文件。 3.用Command属性Open命令打开媒体设备。 4.用Command属性Play命令进行播放。 5.用Command属性Open其他命令控制媒体设备。 6.如果要显示多媒体文件的播放速度,需要在MMControl_StatusUpdate过程中编写代码,以便实现用Slider控件显示文件的播放进程。,107,P167 习题

56、 一、,9. 当一个工程含有多个窗体时,其中的启动窗体是( )。 A. 启动VB时建立的窗体 B. 第一个添加的窗体 C. 最后一个添加的窗体 D. 在“工程属性”对话框中指定的窗体 答案:D,108,P168 习题 一、,10. 为了使根据栏自动填充在窗体的顶部,可将根据栏的Align属性设置为( )。 A. vbAlignTop B. vbAlignButton C. vbAlignLeft D. vbAlignNone 答案:D,109,P168 习题 三、问答题,2. 怎样指定MMControl控件控制的多媒体设备类型? 答案;用 DeviceType属性指定多媒体设备的类型。 3.

57、如何通过MMControl控件发送MCI命令? 答案:用Command属性来发送MCI命令。共有14个控制命令,如Open(打开一个多媒体文件)、Play(播放多媒体文件)、Stop(停止)等。 4. 如何在设计多媒体应用程序时显示播放速度? 答案:要显示多媒体文件的播放速度,需要在MMControl_StatusUpdate过程中编写代码,以便实现用Slider控件显示文件的播放进程。,110,P168 习题 四、程序设计题,3. 多媒体程序。利用MMControl控件设计一个多媒体信息播放程序,程序运行界面如图所示。,111,程序代码(以VCD为例),(1)VCD按钮Click事件代码 P

58、rivate Sub Command2_Click() 在未选择文件时,文件名为空字符 CommonDialog1.FileName = 设置文件的过滤方式,可显示文件名为.dat的文件 CommonDialog1.Filter = (vcd*.dat)*.dat 初始的文件过滤方式为*.dat CommonDialog1.FilterIndex = 2 建立打开文件的通用对话框 CommonDialog1.ShowOpen 打开一个文件后关闭前一此被打开的多媒体设备 MMControl1.Command = Close 设置多媒体设备类型为MpegVideo MMControl1.Devic

59、eType = MpegVideo 设置打开的文件为通用对话框中选择的文件 MMControl1.FileName = CommonDialog1.FileName 打开文件 MMControl1.Command = Open MMControl1.Command = Play End Sub,112,程序代码(以VCD为例),(2)窗体的Unload事件代码 Private Sub Form_Unload(Cancel As Integer) 关闭多媒体设备 MMControl1.Command = Stop MMControl1.Command = Close End Sub (6)关闭按钮的Click事件代码 Private Sub Command6_Click() 退出应用程序 End End Sub,113,实验6 绘图和多媒体应用

温馨提示

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

最新文档

评论

0/150

提交评论