`
utensil
  • 浏览: 151826 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

在VC++2005中使用Windows Media Play ActiveX控件

    博客分类:
  • MFC
阅读更多

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

http://p.blog.csdn.net/images/p_blog_csdn_net/touzani/303255/o_mplay.jpg

 

插入到工具箱 , 再拖到对话框中

( 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

 

void CMPlayDlg::OnKeyUp(UINTnChar,UINTnRepCnt,UINTnFlags)... {

if ((GetKeyState(VK_CONTROL)&1<<15)&&

(nChar=='L'||nChar=='O'||nChar=='F'))... {

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);//伸缩画面,使其适合播放窗口

CStringfn=L"MPlayer:"+dlg.GetFileName();//构造程序标题

SetWindowText(fn);//设置程序窗口的标题

m_ctrlMPlayer.put_URL(dlg.GetPathName());

}


}


CDialog::OnKeyUp(nChar,nRepCnt,nFlags);
}
分享到:
评论

相关推荐

    基于vc++6.0 mfc控件windows media player的视频播放器 课程设计

    在本课程设计中,我们将探讨如何使用VC++6.0集成开发环境,结合MFC(Microsoft Foundation Classes)库,以及Windows Media Player控件来构建一个简单的视频播放器。这是一个经典的Windows应用程序开发实例,有助于...

    【MFC】Windows Media Player控件示例

    在本文中,我们将深入探讨如何使用MFC(Microsoft Foundation Classes)框架来集成Windows Media Player ActiveX控件,创建一个功能齐全的视频和音频播放器。这个控件允许开发者轻松地在应用程序中添加多媒体播放...

    C++ builder 使用ActiveX控件.

    在 C++ Builder 中使用 ActiveX 控件前,需先进行安装。具体步骤包括: - 打开 C++ Builder,选择“Component”菜单中的“Import ActiveX Control”选项。 - 在出现的对话框中,从系统注册的 ActiveX 控件列表中...

    Windows Media player控件大小改变

    Windows Media Player控件是一种常见的ActiveX控件,它允许开发者在自己的应用程序中嵌入媒体播放功能。本示例将聚焦于如何在对话框上添加Windows Media Player控件,并实现基本的影音播放功能,同时解决控件大小...

    windows7的windows+Media+Player控件类

    为了在项目中使用这个控件,你需要首先确保你的开发环境支持ActiveX控件,并且安装了Windows Media Player。接着,将`windows+Media+Player控件类`文件(通常是`.dll`或`.ocx`)复制到你的工程目录下。 2. **添加...

    VC6.0中ActiveX控件 Media Player 中用CWMPPlayer4类做视频播放器

    "使用 CWMPPlayer4 类在 VC6.0 中开发基于 ActiveX 控件的媒体播放器" 在开发基于 ActiveX 控件的媒体播放器时,使用 CWMPPlayer4 类是非常实用的。 CWMPPlayer4 类是 Windows Media Player 的一个控件类,提供了...

    qt使用activex控件开发的视频播放器项目源码.zip

    在本项目中,ActiveX控件可能是一个已存在的媒体播放器组件,如Windows Media Player或QuickTime Player,通过它可以实现视频播放功能。 接下来,我们关注的是QT中的QAxWidget。QAxWidget是QT ActiveQt库的一部分,...

    MFC中windows media player控件的使用

    通过本文的学习,读者可以了解到如何集成Windows Media Player ActiveX控件到自己的项目中,并掌握如何通过编程的方式对其进行个性化定制,以满足特定的需求。 #### 关键词 - ActiveX 控件 - 多媒体 - 窗体半透明 ...

    MFC编写基于MediaPlay ActiveX控件的播放器(界面已美化)

    在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 框架来构建一个基于MediaPlay ActiveX控件的播放器,并对其进行界面美化。这个项目已经实现了基本的播放功能,包括透明效果和置顶操作,对于初学...

    VS2010操作WindowsMediaPlayer

    Windows Media Player控件是Microsoft提供的一种ActiveX控件,它允许开发者在应用程序中集成媒体播放功能,支持各种音频和视频格式。 首先,我们需要在Visual Studio 2010环境中创建一个新的MFC应用程序项目。打开...

    使用windows meidia player作为控件制作的音乐视频播放器

    开发者需要在工程中引用comctl32.lib库,然后在对话框资源中添加ActiveX控件,选择Windows Media Player控件的类ID(CLSID)。 该播放器支持全屏模式,这是通过调用Windows Media Player控件的成员函数如`put_...

    基于WindowsMediaPlayer控件的播放器

    这是Microsoft提供的一种ActiveX控件,它内置在Windows操作系统中,支持各种多媒体格式,如MP3、WAV、WMV等。在WinForm应用中,我们可以通过添加ActiveX控件的方式引入WMP控件。在设计界面时,将控件拖放到表单上,...

    通过Windows Media Player控件播放多媒体文件,基于VS2008开发

    在弹出的"ActiveX控件"列表中,找到"Windows Media Player"并将其拖放到对话框上。此时,控件将自动添加到资源对话框中,同时会在头文件中生成一个CWnd派生类的成员变量,如`m_mediaPlayer`。 ### 三、实现播放控制...

    Media Player控件类头文件&源文件

    标签“media player类”进一步强调了我们的关注点在于这个特定的类,它封装了Windows Media Player控件的接口,使得在MFC程序中使用更加方便。 在压缩包内的“windows Media Player控件类”文件中,我们可以期待...

    网页中嵌入windows media player示例

    本示例主要讲解如何在网页中嵌入Windows Media Player。 首先,我们要了解Windows Media Player支持的文件格式,包括ASF(Advanced Systems Format)、WMV(Windows Media Video)、WMA(Windows Media Audio)等。...

    VC调用WindowsMediaPlayer

    1. **添加MediaPlayer控件**:在MFC工程中,可以通过资源编辑器添加一个ActiveX控件,选择Windows Media Player。 2. **初始化控件**:在程序运行时,需要初始化MediaPlayer控件,设置其属性,如自动播放、全屏模式...

    c# winform windows media player SDK 信息显示

    首先,我们需要在WinForm界面中添加一个ActiveX控件来承载Windows Media Player。在设计界面时,可以右键点击工具箱,选择“选择项”,然后在COM组件列表中找到并添加"Microsoft Web Browser"。虽然它的名称是Web...

    PB使用MediaPlayer和RealPlayerG2播放流媒体

    在PB中集成RealPlayer G2,需要利用ActiveX控件技术,因为RealPlayer提供了ActiveX版本供开发者在应用程序中嵌入。首先,确保系统安装了RealPlayer G2,然后在PB的ActiveX控件库中找到并添加RealPlayer控件。接着,...

    windowsMediaPlayer播放器

    1. 在MFC工程的资源视图中,打开对话框资源,通过“插入”菜单选择“ActiveX控件”,然后选择“Windows Media Player”。 2. 在对话框类的头文件中,声明Windows Media Player控件的成员变量,例如: ```cpp ...

    ce6 c# 调用 windows media player

    在桌面版的.NET Framework中,我们可以直接使用AxHost类来托管ActiveX控件,但在CE6环境下,情况有所不同。 CE6不支持.NET Framework的全部特性,因此不能直接使用AxHost。为了在C#中调用Windows Media Player,...

Global site tag (gtag.js) - Google Analytics