MMControl 控件的用法,属性,事件

各位大师那里可以知道到这个空间的用法和属性哈跪求~~~~
2024-12-26 16:08:45
推荐回答(2个)
回答1:

MSDN就是最好的呀..属性性和方法太多了,就不一一转过来了.下载了份吧.FOR VB版的,才14MB的

Multimedia MCI 控件

Multimedia MCI 控件管理媒体控制接口 (MCI) 设备上的多媒体文件的记录与回放。从概念上说,这种控件就是一组按钮,它被用来向诸如声卡、MIDI 序列发生器、CD-ROM 驱动器、视频 CD 播放器和视频磁带记录器及播放器等设备发出 MCI 命令。MCI 控件还支持 Windows (*.avi) 视频文件的回放。

在设计时,将 Multimedia MCI 控件加到一个窗体上,它在窗体中的外观如下图所示:

按钮被分别定义为 Prev、 Next、 Play、 Pause、 Back、 Step、 Stop、 Record 和 Eject。

说明

在允许用户从 Multimedia MCI 控件选取按钮之前,应用程序必须先将 MCI 设备打开,并在 Multimedia MCI 控件上启用适当的按钮。在 Visual Basic 中,应将 MCI Open 命令放到 Form_Load 事件中。

在使用 Multimedia MCI 控件记录音频信号之前,应打开一个新的文件。这样就可以保证记录声音的数据文件格式与系统记录格式完全兼容。在关闭 MCI 设备之前,还应该发出 MCI Save 命令,把记录的数据保存到文件中去。

Multimedia MCI 控件可以通过多种方法编程:

在运行时,控件可以是可见的或不可见的。

可以增加或完全重新定义控件中按钮的功能。

可以在一个窗体中控制多台设备。
如果想使用 Multimedia MCI 控件中的按钮,要将 Visible 和 Enabled 属性设置为 True。如果不想使用控件中的按钮,而只是想用 Multimedia MCI 控件的多媒体功能,可将 Visible 和 Enabled 属性设置为 False。无论有没有用户交互,应用程序均可控制 MCI 设备。

Multimedia MCI 控件的事件(按钮定义)是可编程的。通过开发按钮事件代码,可以增加甚至完全重新定义按钮的功能。

MCI 能在单个窗体中支持多个 Multimedia MCI 控件实例,这样就可以同时控制多台 MCI 设备。每台设备需要一个控件。

发行注意 在创建和发布使用 Multimedia MCI 控件的应用程序时,应该在用户的 Microsoft Windows System 或 System32 目录中安装并注册相应的文件。Visual Basic 的Package and Deployment向导提供了一些工具,可以帮您编写安装程序,以正确安装。

示例(Multimedia MCI 控件)
Visual Basic 示例

下面的示例演示了打开一台使用兼容数据文件的 MCI 设备的过程。将这些代码放到 Form_Load 过程,应用程序就可以使用 Multimedia MCI 控件来对文件 Gong.wav 进行 播放、记录和倒带。在试运行这个示例之前,首先应创建一个包含 Multimedia MCI 控件的窗体。

Private Sub Form_Load ()
' Set properties needed by MCI to open.
MMControl1.Notify = FALSE
MMControl1.Wait = TRUE
MMControl1.Shareable = FALSE
MMControl1.DeviceType = "WaveAudio"
MMControl1.FileName = "C:\WINDOWS\MMDATA\GONG.WAV"

'打开 MCI WaveAudio 设备。
MMControl1.Command = "Open"
End Sub

为了正确管理多媒体资源,在退出应用程序之前,应该关闭那些已经打开的 MCI 设备。将下面的语句放到 Form_Unload 过程,那么在退出包含 Multimedia MCI 控件的窗体之前,就可以关闭那些已经打开的 MCI 设备。

Private Sub Form_Unload (Cancel As Integer)
MMControl1.Command = "Close"
End Sub

AutoEnable 属性(Multimedia MCI 控件)

这一属性决定 Multimedia MCI 控件是否能够自动启动或关闭控件中的某个按钮。如果 AutoEnable 属性被设置为 True,Multimedia MCI 控件就启用指定 MCI 设备类型在当前模式下所支持的全部按钮。这一属性还会禁用那些 MCI 设备类型在当前模式下不支持的按钮。

语法

[form.]MMControl.AutoEnable[ = {True | False}]

说明

AutoEnable 属性的作用可以被 Enabled 属性的作用所替代,如果启用了 Multimedia MCI 控件(Enabled 属性被设置为 True),AutoEnable 属性就可以自动地启用或禁用控件的某个按钮。相反如果 Enabled 属性被设置为 False,那么不管 AutoEnable 属性是如何设置的,键盘和鼠标都不能对 Multimedia MCI 控件进行运行时访问。

下表列出了 Multimedia MCI 控件的 AutoEnable 属性的设置值。

设置值 描述
False 不能启用或禁用按钮。程序通过设置 Enabled 和 ButtonEnabled 属性来控制按钮的状态。
True (缺省值)启用功能可用的按钮,禁用功能不可用的 按钮。

下表显示了 MCI 模式的设置值是如何映射到控件属性的设置值的。

Play 模式

Record 模式

Pause 模式

Stop 模式

Open 模式

Seek or Not Ready 模式

AutoEnable 属性的作用可以替代 ButtonEnabled 属性的作用。当 Enabled 和 AutoEnable 属性同时为 True 时,ButtonEnabled 属性就不起作用。

数据类型

Integer (Boolean)

回答2:

一、Multimedia MCI控件的调用及说明

在调用Multimedia MCI控件之前,须要执行“工程\部件”菜单命令,将Microsoft Multimedia Controls前的方框选中,在工
具箱中便会出现Multimedia 控件图标。把 Multimedia 控件添加到窗体上。当你打开有效的多媒体设备并且控件可用时,系统会自
动完成相应工作。按钮被分别定义为:Prev、 Next、 Play、 Pause、 Back、 Step、 Stop、 Record 和 Eject。你可以为某一个
按钮编写程序,从而为其增加特殊功能,但一般情况,缺省的按钮功能就能很好地播放音乐和视频。
在引用控件时,你须要指定控件的Device Type 属性,也可以缺省,对于复杂的MCI设备和播放CD音乐你必须要说明。格式是
MMControl1.Device Type=Devname。下表列出了Multimedia控件支持的多媒体设备。
在Multimedia控件中非常有用的一个属性是Command,它在运行过程中向多媒体设备发出命令。格式是:
MMControl.Command = cmdstringS,其中cmdstringS变量与每一个按钮的定义名称一致。此外,还有Mode、Wait、
Shareable、Notify、UpdateInterval、Position、Length等属性和Done、StatusUpdate事件是我们经常用到的。
二、示例程序

下面是一个用Multimedia控件集成音乐和视频的应用程序,它可播放*.wav、*.mid、*.avi文件,可显示打开文件的时间
长度和在播放时的进度,并在状态栏里有相关的说明。编程如下:
1.设计窗体
新建工程,在部件中分别引入Multimedia控件、Common Dialog Control 、Windows Common Control,在窗体中分别加入
CommonDialog、MMControl、Slider、Status Bar、CheckBox。Label(1-3)分别放在Slider 下的左端、中间和右端,并在窗
体上加一个菜单。将Slider的SelectRange的复选框选定,设置Smallchange和Maxchange为10,TickFrequengcy为20。
在Status Bar的属性中的Panels项用鼠标点击Insert Panels 5 次。Index有5项,在Index第一项、第三项的Text项中分别
输入“剩余时间”、“总时间”,适当设置每一项的Minimun Width(可参见后面对Panels的控制)。将CheckBox的Caption改
为“循环”,把3个Label的Caption都改为空字符串。最后进入菜单编辑器,设置标题为“文件”,名称MnuFile;在“文件”下
设立子菜单标题分别为“&Open”、“&Close”、“&Exit”,名称分别为MnuOpen、MnuClose、MnuExit(在MnuExit_Click()
事件填完代码后,要将其设为无效)。

2.控件代码

本示例的源程序如下:
Private Sub MnuOpen_Click()
' 设定打开文件类型
CommonDialog1.Filter = "MIDI音乐序器*.mid|*.mid|声音*.wav|*.wav|Widows视频*.avi|*.avi"
CommonDialog1.ShowOpen
MMControl1.Notify = False
MMControl1.Wait = True
MMControl1.Shareable = False
'由系统默认设备类型
MMControl1.DeviceType =""
MMControl1.filename = CommonDialog1.filename
' 打开 MCI 设备。
MMControl1.Command = "Open"
MnuClose.Enabled = True
Slider1.Visible = True
End Sub
Private Sub MMControl1_StatusUpdate()
On Error GoTo Erropen
'设置文件长度以毫秒形式返回,
MMControl1.TimeFormat = 0
Slider1.Max = MMControl1.Length / 1000
If MMControl1.Position <> MMControl1.Length Then
Slider1.Value = MMControl1.Position / 1000
Else
MMControl1.Command = "Prev"
Slider1.Value = 0
End If
'调用Tstring函数计算剩余时间和总时间
StatusBar1.Panels(2) = Tstring(MMControl1.Length - MMControl1.Position)
StatusBar1.Panels(4) = Tstring(MMControl1.Length)
Label1.Caption = "00:00"
Label2.Caption = Tstring(MMControl1.Length / 2)
Label3.Caption = Tstring(MMControl1.Length)
' 由Mode返回不同值并在状态栏经出相应的提示
Select Case MMControl1.Mode
Case 524
StatusBar1.Panels(5) = " 未打开设备……"
Case 525
StatusBar1.Panels(5) = "停止状态……"
Case 526
StatusBar1.Panels(5) = "正在播放……" & CommonDialog1.FileTitle
Case 527
StatusBar1.Panels(5) = "正在录音……"
Case 528
StatusBar1.Panels(5) = "正在搜索……"
Case 529
StatusBar1.Panels(5) = "暂停播放……"
Case 530
StatusBar1.Panels(5) = "设备就绪……"
End Select
Erropen:
' 放弃打开文件
End Sub
' 自定义将毫秒转化为分、秒Tstring函数
Private Function Tstring(sm As Long) As String
s = (sm / 1000 / 60) Mod 60
m = (sm / 1000) Mod 60
Tstring = Format(s, "00") & ";" & Format(m, "00")
End Function
Private Sub MMControl1_Done(NotifyCode As Integer)
MMControl1.UpdateInterval = 100 ' 间隔100毫秒
End Sub
Private Sub MnuClose_Click()
MMControl1.Command = "Close"
MnuClose.Enabled = False
End Sub
Private Sub MnuExit_Click()
MMControl1.Command = "Close"
End
End Sub
Private Sub Check1_Click()
If Check1.Value = 1 Then
MMControl1.Command = "Play" ' 继续播放
End If
End Sub
此外,欲在当前窗口播放*.avi文件,可在窗体加一个PictureBox,在Private Sub MMControl1_StatusUpdate()中加
入MMControl1.hWndDisplay = Picture1.hWnd一句。