VC++2005有许多东西变了,比如ActiveX控件的添加和控制——仅仅为了添加一个Windows Media Player控件,我就弄得头晕转向,按老办法做行不通不说,自己摸索了半天+上网搜索+去书店翻书都没有彻底。幸亏找到了这篇文章,才得以解决。感谢touzani大侠(http://blog.csdn.net/touzani/
)!
皿
原文如下:
以ActiveX
控件——媒体播放器为例,说明组件应用之功能强大和使用的简单方便。
媒体播放器
(Media Player)
是
DirectX Media
中的一个
ActiveX
控件,支持大多数标准流媒体格式的播放,如
ASF
、
AVI
、
MPEG
、
WAV
、
MIDI
、
MP3
、
WMA
等,但对
RM
和
MOV
支持得不够。
创建一个基于对话框的
MFC
应用程序
MPlay
为了能够在项目中使用媒体播放器控件,必须先将媒体播放器控件添加到对话框编辑器工具箱中。(这需要在你的系统中,已经正确安装了微软公司的媒体播放器)
1.
添加
ActiveX
控件
(VC++ 6.0)
工程-添加到工程-
> components and controls
选择
Windows Media Player
插入到工具箱
,
再拖到对话框中
( VC++2005方法)
1 打开工具箱窗口,在其空白区单击鼠标右键,在弹出菜单中选中“选择项”菜单项;也可以选
VS
的“工具
\
选择工具箱项”菜单项;在弹出的“选择工具箱项”对话框中,选择“
COM
组件”页;滚动到列表框的底部,选中“
Windows Media Player
”项,按“确定”钮,关闭对话框。系统会将一个“
Windows Media Player
”控件,加入到工具箱的对话框编辑器栏的底部。这样你就可以将其加入到对话框资源中了。
2 你也可以简单地在对话框资源中单击鼠标右键,在弹出菜单中选中“插入
ActiveX
控件”菜单项;在打开的“插入
ActiveX
控件”对话框中,滚动列表框,选择底部的“
Windows Media Player
”项,按“确定”钮,关闭对话框。则系统会将其自动加入到对话框资源中(但这样是不会在工具箱中添加对应控件的)。
)
2
)设计对话框
在对话框中调整好媒体播放器控件的位置和大小,打开属性窗口,设置其
ID
为
IDC_MP
。去掉对话框中
“取消”钮,将“确定”钮中的文字改为“打开
(&O)
”,并修改其
ID
为
IDC_LOAD
(用来打开文件对话框,选择播放的流媒体文件,并将该文件的路径名传递给媒体播放器),而播放、暂停、停止等图形按钮控件中已经有了。
在你为对话框加入媒体播放器控件后,
MFC
会自动在资源文件
MPlay.rc
中添加对它的复杂初始化代码.
还可以按属性窗口工具条上的属性页按钮,在弹出的“
Windows Media Player
属性”对话框中,进行各种属性设置,例如选中“按比例伸展”和“全屏播放”复选框。
3
)添加控件变量
为了能使用媒体播放器控件,我们必须为该控件添加一个控件型类变量
m_ctrlMPlayer;
同时给打开按钮添加了变量
m_ctrlLoad.
(
4
)使用控件
这里所要做的工作,只是在
CMPlayDlg
类中,为“装入”按钮添加单击事件
BN_CLICKED
的处理程序
OnBnClickedLoad
,并在该函数中打开公用文件对话框,获取用户选择的媒体文件名,并将该文件的路径传递给媒体播放器类对象:
VC++ 6.0 代码:
void
CMPlayDlg::OnBnClickedLoad()
...
{
CFileDialogdlg(TRUE,NULL,L
"
*.*
"
,OFN_FILEMUSTEXIST,
"
ActiveStreamingFormat(*.asf)|*.asf|
"
"
AudioVideoInterleaveFormat(*.avi)|*.avi|
"
"
RealAudio/RealVideo(*.rm)|*.rm|
"
"
WaveAudio(*.wav)|*.wav|
"
"
MIDIFile(*.mid)|*.mid|
"
"
所有文件(*.*)|*.*||
"
);
if
(dlg.DoModal()
==
IDOK)
...
{
//
m_ctrlMPlayer.put_stretchToFit(TRUE);
//
伸缩画面,使其适合播放窗口
//
……可以在此进行各种其他设置
m_ctrlMPlayer.SetUrl(dlg.GetPathName());
//
传递媒体文件到播放器
}
}
VC++ 2005 代码:
void
CMPlayDlg::OnBnClickedLoad()
...
{
CFileDialogdlg(TRUE,NULL,L"*.*",OFN_FILEMUSTEXIST,
L"ActiveStreamingFormat(*.asf)|*.asf|"
L"AudioVideoInterleaveFormat(*.avi)|*.avi|"
L"RealAudio/RealVideo(*.rm)|*.rm|"
L"WaveAudio(*.wav)|*.wav|"
L"MIDIFile(*.mid)|*.mid|"
L"所有文件(*.*)|*.*||"
);
if
(dlg.DoModal()==IDOK)
...
{
//
m_ctrlMPlayer.put_stretchToFit(TRUE);
//
伸缩画面,使其适合播放窗口
//
……可以在此进行各种其他设置
m_ctrlMPlayer.put_URL(dlg.GetPathName());
//
传递媒体文件到播放器
}
}
在该函数中设置了若干流媒体文件过虑器,创建打开文件公用对话框对象,让用户选择要播放的流媒体文件,并将该文件的路径通过调用
CMp
类的成员函数
Set_URL
传递给媒体播放器。
注意
,媒体播放器控件有各种不同的版本,对应的函数名也可能有所不同。如果找不到类似功能的函数,说明你系统中安装的媒体播放器控件有问题,可以点击这里
下栽
mp.h
头文件,用它替代你的同名文件。
现在程序可以编译运行了...
(
5
)改变播放器窗口大小
要使程序可以让用户任意改变播放器窗口的大小,则需要设置对话框(位于属性窗口顶部的外观栏中)的边框属性
border
为
Resizing
(可调整大小),该属性的缺省值为
Dialog Frame
(对话框边框),是不能调整大小的。还可以同时设置
Maximize Box
和
Minimize Box
属性为
True
。
为了使媒体播放器的窗口随对话框而改变大小,需要为项目的对话框类添加
WM_SIZE
的消息响应函数
OnSize
。并在该函数中,调用
CWnd
的成员函数
void MoveWindow(int x, int y, int nWidth, int nHeight, BOOL bRepaint = TRUE);
来改变播放器窗口的大小(注意:媒体播放器类是
CWnd
的派生类)。注意也要把打开按钮一起移动.
代码如下:
void
CMplayDlg::OnSize(UINTnType,
int
cx,
int
cy)
...
{
CDialog::OnSize(nType,cx,cy);
m_ctrlMPlayer.MoveWindow(
0
,
0
,cx
-
40
,cy);
m_ctrlLoad.MoveWindow(cx
-
40
,
0
,cx,cy);
//
改变打开按钮位置
}
还可以为对话框类再添加
WM_KEYUP
消息响应函数。在该函数中,响应用户按键
Ctrl+L|O|F
,打开公用文件对话框,让用户选择媒体文件,并将其传送给播放器对象(后面这部分代码与前面的一样)。
代码如下:(VC++ 2005)
源文件下载: MPlay.rar(VC6.0)46KB
MPlay.rar (for VC2005) 45KB
分享到:
相关推荐
在本课程设计中,我们将探讨如何使用VC++6.0集成开发环境,结合MFC(Microsoft Foundation Classes)库,以及Windows Media Player控件来构建一个简单的视频播放器。这是一个经典的Windows应用程序开发实例,有助于...
在本文中,我们将深入探讨如何使用MFC(Microsoft Foundation Classes)框架来集成Windows Media Player ActiveX控件,创建一个功能齐全的视频和音频播放器。这个控件允许开发者轻松地在应用程序中添加多媒体播放...
在 C++ Builder 中使用 ActiveX 控件前,需先进行安装。具体步骤包括: - 打开 C++ Builder,选择“Component”菜单中的“Import ActiveX Control”选项。 - 在出现的对话框中,从系统注册的 ActiveX 控件列表中...
Windows Media Player控件是一种常见的ActiveX控件,它允许开发者在自己的应用程序中嵌入媒体播放功能。本示例将聚焦于如何在对话框上添加Windows Media Player控件,并实现基本的影音播放功能,同时解决控件大小...
为了在项目中使用这个控件,你需要首先确保你的开发环境支持ActiveX控件,并且安装了Windows Media Player。接着,将`windows+Media+Player控件类`文件(通常是`.dll`或`.ocx`)复制到你的工程目录下。 2. **添加...
"使用 CWMPPlayer4 类在 VC6.0 中开发基于 ActiveX 控件的媒体播放器" 在开发基于 ActiveX 控件的媒体播放器时,使用 CWMPPlayer4 类是非常实用的。 CWMPPlayer4 类是 Windows Media Player 的一个控件类,提供了...
在本项目中,ActiveX控件可能是一个已存在的媒体播放器组件,如Windows Media Player或QuickTime Player,通过它可以实现视频播放功能。 接下来,我们关注的是QT中的QAxWidget。QAxWidget是QT ActiveQt库的一部分,...
通过本文的学习,读者可以了解到如何集成Windows Media Player ActiveX控件到自己的项目中,并掌握如何通过编程的方式对其进行个性化定制,以满足特定的需求。 #### 关键词 - ActiveX 控件 - 多媒体 - 窗体半透明 ...
在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 框架来构建一个基于MediaPlay ActiveX控件的播放器,并对其进行界面美化。这个项目已经实现了基本的播放功能,包括透明效果和置顶操作,对于初学...
Windows Media Player控件是Microsoft提供的一种ActiveX控件,它允许开发者在应用程序中集成媒体播放功能,支持各种音频和视频格式。 首先,我们需要在Visual Studio 2010环境中创建一个新的MFC应用程序项目。打开...
开发者需要在工程中引用comctl32.lib库,然后在对话框资源中添加ActiveX控件,选择Windows Media Player控件的类ID(CLSID)。 该播放器支持全屏模式,这是通过调用Windows Media Player控件的成员函数如`put_...
这是Microsoft提供的一种ActiveX控件,它内置在Windows操作系统中,支持各种多媒体格式,如MP3、WAV、WMV等。在WinForm应用中,我们可以通过添加ActiveX控件的方式引入WMP控件。在设计界面时,将控件拖放到表单上,...
在弹出的"ActiveX控件"列表中,找到"Windows Media Player"并将其拖放到对话框上。此时,控件将自动添加到资源对话框中,同时会在头文件中生成一个CWnd派生类的成员变量,如`m_mediaPlayer`。 ### 三、实现播放控制...
标签“media player类”进一步强调了我们的关注点在于这个特定的类,它封装了Windows Media Player控件的接口,使得在MFC程序中使用更加方便。 在压缩包内的“windows Media Player控件类”文件中,我们可以期待...
本示例主要讲解如何在网页中嵌入Windows Media Player。 首先,我们要了解Windows Media Player支持的文件格式,包括ASF(Advanced Systems Format)、WMV(Windows Media Video)、WMA(Windows Media Audio)等。...
1. **添加MediaPlayer控件**:在MFC工程中,可以通过资源编辑器添加一个ActiveX控件,选择Windows Media Player。 2. **初始化控件**:在程序运行时,需要初始化MediaPlayer控件,设置其属性,如自动播放、全屏模式...
首先,我们需要在WinForm界面中添加一个ActiveX控件来承载Windows Media Player。在设计界面时,可以右键点击工具箱,选择“选择项”,然后在COM组件列表中找到并添加"Microsoft Web Browser"。虽然它的名称是Web...
在PB中集成RealPlayer G2,需要利用ActiveX控件技术,因为RealPlayer提供了ActiveX版本供开发者在应用程序中嵌入。首先,确保系统安装了RealPlayer G2,然后在PB的ActiveX控件库中找到并添加RealPlayer控件。接着,...
1. 在MFC工程的资源视图中,打开对话框资源,通过“插入”菜单选择“ActiveX控件”,然后选择“Windows Media Player”。 2. 在对话框类的头文件中,声明Windows Media Player控件的成员变量,例如: ```cpp ...
在桌面版的.NET Framework中,我们可以直接使用AxHost类来托管ActiveX控件,但在CE6环境下,情况有所不同。 CE6不支持.NET Framework的全部特性,因此不能直接使用AxHost。为了在C#中调用Windows Media Player,...