对于VS2003控件的看法与说明的具体概述

开发 后端
为了使大家以后在遇到关于VS2003控件问题,小弟就将自己前段时间总结的东西贡献出来,希望对各位老鸟和小鸟们有所帮助。

最近在做一个有关VS2003控件和windows media player 控件的东西,刚开始做的时候,在网上找了很久都没找到相关的中文文档。没办法,只好自己硬着头皮慢慢查看MSDN上的有关内容。由于VS2003控件与VC6有一定的区别,这也是我在查找资料和使用控件时遇到的具到困难。#t#

Windows media player作为MS的官方组件,MSDN上有着比较详细的英文说明,但是该说明却并不是那么让人一目了然。该文就如何操作该组件的几个主要接口以及一些基本功能的实现给与详尽而明白的说明,为使该文尽量简单易懂,本文给出了用windows media player控件编写一个简单播放器的基本步骤。

首先,创建一个对话框,然后在资源管理器中右击对话框,选择“插入Active控件”—〉选择windows media player—〉将控件拉到适合大小—〉右击player控件—〉选择添加变量(m_avPlayer)。此时添加的变量在VS2003中不在时IWMPPlay4 了,而是COcx。

右击类视图/解决方案—〉添加类—〉选择“Active中的MFC类”—〉选择windows media player<1.0>à选择相应的接口(IWMPMedia IWMPSettings IWMPControls IWMPPlaylist等等)生成类。为图方便,我将所有接口都生成了相应的类。

为了说明方便,我在对话框中放了几个按钮,分别是:打开,播放,暂停,停止,添加。并在对话框右边添加了一个clistctrl又来显示播放列表。

然后在对话框头文件中添加了以下变量:

  1. CWMPControls m_control;  
  2. CWMPSettings m_set;   
  3. CWMPPlaylist    m_playlist;  
  4. CWMPMedia m_media;  
  5. COcx1 m_avPlayer;  
  6. CListCtrl m_listCtrl;  
一切准备工作就绪,下面就涉及到具体的编程问题了。

media player 的主要功能有:播放控制,屏幕显示,播放列表,播放列表集,播放信息显示。

 

其中播放控制又有:打开,开始,暂停,停止,快速播放,倒退等等。

打开:当选择一个文件打开是,为打开按钮添加消息响应函数,在VS2003控件函数中添加如下代码

 

  1. char szFileFilter[]=  
  2. "Mp3 File(*.mp3)|*.mp3|"   
  3. "MPEG File(*.mpeg)|*.mpeg|"   
  4. "Media File(*.asf)|*.asf|"   
  5. "Video File(*.dat)|*.dat|"   
  6. "MPGA File(*.mpga)|*.mpga|"   
  7. "Wave File(*.wav)|*.wav|"   
  8. "AVI File(*.avi)|*.avi|"   
  9. "Movie File(*.mov)|*.mov|"   
  10. "Mid File(*.mid;*,rmi)|*.mid;*.rmi|"   
  11. "Wma File(*.wma)|*.wma|"   
  12. "All File(*.*)|*.*||";   
  13. CFileDialog fileDialog( TRUE,NULL,NULL,NULL,szFileFilter,this);  
  14. if (fileDialog.DoModal() == IDOK)   
  15. {  
  16. CStringfileName=fileDialog.GetPathName();   
  17. m_avPlayer.put_URL(fileName);  

 

◆下面来实现播放列表。为实现播放列表控制,首先在OnInitDialog()中添加代码:

//创建一个播放列表

 

  1. char szFileFilter[]=   
  2. "Mp3 File(*.mp3)|*.mp3|"   
  3. "MPEG File(*.mpeg)|*.mpeg|"   
  4. "Media File(*.asf)|*.asf|"   
  5. "Video File(*.dat)|*.dat|"   
  6. "MPGA File(*.mpga)|*.mpga|"   
  7. "Wave File(*.wav)|*.wav|"   
  8. "AVI File(*.avi)|*.avi|"   
  9. "Movie File(*.mov)|*.mov|"   
  10. "Mid File(*.mid;*,rmi)|*.mid;*.rmi|"   
  11. "Wma File(*.wma)|*.wma|"   
  12. "All File(*.*)|*.*||";   
  13. CFileDialog fileDialog( TRUE,NULL,NULL,NULL,szFileFilter,this);  
  14. if (fileDialog.DoModal() == IDOK)   
  15. {  
  16. CStringfileName=fileDialog.GetPathName();   
  17. //创建一个媒体  
  18. m_media = static_cast<CWMPMedia>(m_avPlayer.newMedia(fileName));  
  19. //将媒体添加到播放列表  
  20. m_playlist.appendItem(m_media);  
  21. //将列表添加到当前列表,以便实现自动播放  
  22. m_avPlayer.put_currentPlaylist(m_playlist);  
  23. m_set = (CWMPSettings)m_avPlayer.get_settings();  
  24. //参数true设置自动播放,false不设置自动播放  
  25. m_set.put_autoStart(true);  
  26. //将媒体的名字添加到列表控件  
  27. m_listCtrl.InsertItem(0, m_media.get_name());  
  28. }  

 

播放信息的显示

可以通过CWMPMedia类获取相关的媒体信息。

 

获取播放文件名:

其他,如鼠标,接盘事件响应,可添加相应的消息响应函数

要注意的是,在添加如鼠标一类的消息时,消息函数有个参数如nButton,它的值为1时是单击鼠标左键,2为单击鼠标右键消息,4为单击鼠标中键。等等。

责任编辑:chenqingxiang 来源: 百度博客
相关推荐

2009-11-25 13:35:05

VS2003使用

2009-11-26 08:57:01

VS2003发布

2009-11-30 13:51:28

ActiveX控件

2009-11-27 09:16:11

VS2003配置文件

2009-11-30 17:28:39

VS2003 ASP

2009-11-30 11:05:19

VS2003 WebS

2009-11-30 10:34:28

VS2003编译

2009-11-30 13:51:28

2009-11-30 10:07:19

VS2003版本

2009-11-26 11:30:12

VS2003控件

2009-11-30 16:50:26

VS2003调试

2009-12-01 17:55:11

VS2003配置

2009-12-01 15:32:48

VS2003配置

2009-11-27 10:03:48

VS2003安装失败

2009-11-30 13:51:28

VS2003 Acti

2009-11-27 16:25:54

2009-12-01 10:54:48

VS2003 英文版

2009-11-26 10:02:06

2009-12-01 15:01:33

VS2003 Web

2009-11-27 16:16:51

VS2003系统
点赞
收藏

51CTO技术栈公众号