
-创建ActiveX控件和多媒体应用程序.ppt
14页第11章 AxtiveX控件 P325ActiveX的三种表现形式:1. ActiveX EXE:支持COM的独立EXE进程当需要系统服 务,或相对独立的子系统存在时,可以选用这种形式,具有 良好的可靠性但跨进程调用,占用资源大,效率较低,不 适合频率调用的核心组件2. ActiveX DLL:以DLL方式封装的COM组件能够提供进 程内的透明调用能力效率高,实现容易但可靠性不如 EXE形式的好是目前用得最为广泛的ActiveX形式3.3. ActiveXActiveX控件:控件:如果需要如果需要ActiveXActiveX与用户通过人机界面来交与用户通过人机界面来交 流,则需要以控件形式生成其内质与流,则需要以控件形式生成其内质与ActiveX ActiveX DLLDLL一样 只是多了一层界面只是多了一层界面13.1 ActiveX部件简介AcitiveX部件是指一些可执行的代码,如一个.exe、.dll、.ocx 文件,它们在提供对象时遵循AcitiveX的规范 通过ActiveX技术,程序员就能把这些可重用的软 件部件组装到应用程序或服务程序中VB6.0的控件分为标准控件和 ActiveX控件两类。
ActiveX控件以.ocx为后缀保存在Windows\System目录下,使用 前必须先将它们调到IDE工具箱中AcitveX控件分为两类:控件和可插入对象 可插入对象就是一个应用程序,如Microsoft Word11.2 创建ActiveX控件1. 起动VB,打开“ActiveX控件”•设计窗体有一个UserControl对象,可以修改其名称为新 ActiveX控件名称在此可以进行ActiveX控件制作•利用“工具”中“添加过程”可以为新ActiveX 控件公有的“属 性”、“事件”等•界面与代码设计好后,在指定目录生成指定文件的.ocx, 完成自制ActiveX控件的工作•另起VB,就可以通过增加部件找到所自制的新ActiveX控 件,放在工具箱上,直接就可使用了第12章 开发多媒体应用程序 P325* MMControl控件; * 多媒体应用程序的实现:音频播放器、视频播放器的制作 ;使用Win32 API函数MCI—Multimedia Control Interface媒体播放器程序:Mplayer.exeCD播放器程序: Cdplayer.exe*.avi 有声或无声动画文件 *.mid MIDI(Music Instrument Digital Interface 乐器数字接 口)格式,只能播放器乐,不含语音。
因为.mid文件只 存储128种乐器得曲谱而非声波本身 *.wav 记录声音模拟信号,可以是任何声音1. 概述任何播放动作的5个步骤• 选择播放设备(DeviceType) • 选择播放文件名(FileName) • 打开文件(Open) • 播放文件(Play) • 关闭(Close)2. MCI控件“工程”—“部件”—“控件”—“Microsoft MultiMedia Control 6.0”属性:PrevEnabled 回到节目的起点属性:NextEnabled 跳到下一个节目的起点 属性:PlayEnabled 播放 属性:PauseEnabled 暂停属性:EjectEnabled 弹出光盘 属性:RecordEnabled 录音 属性:StopEnabled 停止 属性:StepEnabled 步进属性:BackEnabled 步退MMControl控件主要属性和事件DeviceType: 指定适当的播放设备P327媒体设备 DeviceName 描述视频(.avi文件) AVIVideo Microsoft AVI格式视频音频CDs CDAudio 用CD-ROM驱动器播放音乐CDMIDI音序器 Sequencer MIDI音序器数据视频音频(.wav文件) WaveAudio Microsoft Windows音频文件。
MMControl1.DeviceType=“waveAudio”Command属性:把MCI命令发送给DeviceType指定的设备发 送的命令与MCI控件上各按钮的名称一致 MMControl1.Command=“ Play ”Length属性: 多媒体文件的采样总数,用于判断播放是否到达 文件末尾Position 属性:多媒体文件的采样序号,从1开始,表明播放到 达的位置Notify 属性: 决定MCI命令执行后是否发生Done事件UpdateInterval属性:设置MMControl控件的StatusUpdate事件 的触发间隔(以微秒为单位)StatusUpdate事件:在UpdateInterval属性设置的时间间隔内自 动激活,对控件的运行状态进行跟踪MMControl1_Done事件:在多媒体控件执行播放(Play)的过程 中,定时执行Done事件的过程代码3. 制作播放器1—MMControlPrivate Sub Form_Load()CommonDialog1.ShowOpenMMControl1.DeviceType = “WaveAudio“MMControl1.FileName = CommonDialog1.FileName'打开 MCI WaveAudio 设备。
MMControl1.Command = “Open“ End SubPrivate Sub MMControl1_StatusUpdate()ProgressBar1.Max = MMControl1.LengthProgressBar1.Value = MMControl1.Position End Sub添加部件:Microsoft MultiMedia Control 6.0——MMControl Microsoft Common Dialog Control 6.0 ——CommonDialog Microsoft Windows Common Controls 6.0——ProgressBar3. 制作播放器2—MediaPlayerPrivate Sub Form_Load()CommonDialog1.ShowOpenMediaPlayer1.FileName = CommonDialog1.FileName End Sub添加部件: Microsoft Common Dialog Control 6.0 ——CommonDialog Windows Media Player——Mediaplayer4. 使用API多媒体函数实现播放API—Application Programming Interface 应用程序编程接口API是Windows系统提供的DLL(动态链接库)* Windows内核库(Kernel 32.dll)* Windows用户界面管理库(User.dll)* Windows图形设备界面库(Gdi32.dll)* 多媒体库(Winmm.dll) 使用API浏览器外接程序—外接程序管理器—VB 6 API Viewer (加载)这时在“外接程序”菜单中添加了“API浏览器”项打开“API浏览器”—加载文本文件—选择“Win32api.txt”API类型—“声明”以wave开头的函数负责处理语音以midi开头的函数用于音乐合成用sndPlaySound过程可以播放音频文件或系统声音mci有关的函数可以编写多媒体应用程序API类型—“常数”选用以上所选择的声明函数对应的参数。
例:调用Windows API函数sndPlaySound播放音频文件在API文本浏览器中选择sndPlaySound声明函数并加载其中有两个参数:lpszSoundName—指定播放的音频文件或系统声音uFlags—设置播放状态 Const SND_SYNC = &H0 ‘ play synchronously (default) 同步播放 Const SND_ASYNC = &H1 ‘ play asynchronously 异步播放 Const SND_LOOP = &H8 ‘ loop the sound until next sndPlaySound 循环播放Public Declare Function sndPlaySound Lib “winmm.dll“ Alias “sndPlaySoundA“ (ByVal lpszSoundName As String, ByVal uFlags As Long) As LongPrivate Declare Function sndPlaySound Lib “winmm.dll“ Alias “sndPlaySoundA“ (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound Const SND_ASYNC = &H1 ' play asynchronously Const SND_SYNC = &H0 ' play synchronously (default)Private Sub Command1_Click()Dim i As IntegerCommonDialog1.ShowOpeni = sndPlaySound(CommonDialog1.FileName, SND_ASYNC) End SubPrivate Sub Command2_Click()Dim i As Integeri = sndPlaySound(“ “, 0) End End Sub。












