VS2010中使用MFC控制隐藏WMP的问题

MFC播放视频的方式有多种,这里artemisrj介绍了4中前往介绍

我采用在工程中使用Windows Media Player播放mp4的视频的方式进行开发。

这里有开发的具体步骤,可以参考执行,不在赘述。

VS2010/MFC对话框程序调用Windows Media Player播放器控件

【VC学习】VC2010 Windows Media Player控件的使用技巧   及开发例程

VC2008 Windows Media Player控件的使用技巧

在开发过程,我把自己遇到的问题跟大家进行分享。

1、插入控件提示SmartSound Quicktracks Plugin需要安装等等。

原因:可能是由于之前你的电脑安装过绘声绘影等软件,没有卸载干净等问题导致了,果断卸载掉即可。

解决方法:下载安装windows installer clean up utility,找到SmartSound Quicktracks Plugin,然后remove掉。

2、在添加“ActiveX 控件中的MFC类”的时候,在注册表中找不到Windows Media Player<1.0>接口。

原因:注册表中没有接口

解决方法:点选"文件",使用浏览手动到c:\windows\system32中找到wmp.dll文件,即可

VS2010中使用MFC控制隐藏WMP的问题

其实,可以有个偷懒的办法:下载提供的开发例程,直接把CWMP相关的.h和.cpp文件添加到工程中,即可。

3、无法隐藏WMP控件

原因:我是一只菜鸟,具体原因不知道

解决方法:我使用了m_player.ShowWindow(false);或者GetDlgItem(IDC_OCX1)->ShowWindow(SW_HIDE):都没有隐藏效果,而且后者还有报错。

或者你可以采用,指定WMP的父窗口为某一个控件,隐藏它的父窗口应该就可以了,具体我没有深入。

最后,我采用了一个方法,是让WMP的窗口大小为0

CRect rect(0,0,0,0);//构建一个大小为0的Rect

m_control.stop();

m_player.MoveWindow(&rect);

这样实现了隐藏的效果,等需要出现的时候再重新指定它的显示Rect即可。

另:WMP的控件变量需要手动添加;

添加的类需要基于CWnd才可以使用窗口函数。