300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > MFC基于Window Media Player的多媒体播放器

MFC基于Window Media Player的多媒体播放器

时间:2021-04-20 21:44:31

相关推荐

MFC基于Window Media Player的多媒体播放器

1.建立一个基于对话框的程序,命名为Video。

2.添加activeX控件Window Media Player,ID为IDC_OCX1,添加一个Edit控件,命名IDC_EDIT_FILENAME;

右键单击

点选择项

选COM组件,在列表中找到Window Media Player勾选,添加到工具箱

工具箱中多了一个Window media Player

3.为该控件添加实现类;

4.在VideoDlg.h中添加#include“CWMPPlayer.h”

然后添加成员变量

我们没有COcx1类,将这个类改为CWMPPlayer4,如下

4.接下来我们开始设置菜单了

为这个菜单添加事件响应

代码如下

void CVideoDlg::OnBnClickedOpen(){// TODO: 在此添加控件通知处理程序代码CString m_str=_T("(*.avi)|*.avi");CFileDialog FileDlg(TRUE, NULL, L"*.*", OFN_FILEMUSTEXIST, m_str);//打开文件if (FileDlg.DoModal() == IDOK){m_PlayVideo.put_URL(FileDlg.GetPathName());//播放文件m_FileName.SetWindowTextW(FileDlg.GetPathName());//设置编辑框文本}}

这样一个简单的播放器就实现了,但是有很多不完善的地方,接下来,我们添加一些其他的功能

5.添加WM_ERASEBKGND消息和WM_SIZE消息

我们要让这个控件能根据窗口大小改变自己的大小

在CVideoDlg类中添加公有成员

CRect m_rect;

在WM_SIZE消息的映射函数中添加如下代码

void CVideoDlg::OnSize(UINT nType, int cx, int cy){CDialogEx::OnSize(nType, cx, cy);// TODO: 在此处添加消息处理程序代码GetClientRect(m_rect);//获取窗口客户区大小}

在WM_ERASEBKGND消息的映射函数中添加如下代码

BOOL CVideoDlg::OnEraseBkgnd(CDC* pDC){// TODO: 在此添加消息处理程序代码和/或调用默认值//调整两控件的位置m_PlayVideo.MoveWindow(m_rect.left, m_rect.top + 30, m_rect.right, m_rect.bottom - 30);m_FileName.MoveWindow(m_rect.left, m_rect.top , m_rect.right,30);return false;}

大功告成了,成功实现预期目标

6.添加功能改变控件风格

添加GDI+支持,这个我不说了,自己看前面的博客

在CWMPPlayer4类中添加共有成员

RectF rect;

添加WM_MOUSEMOVE消息

void CVideoDlg::OnMouseMove(UINT nFlags, CPoint point){// TODO: 在此添加消息处理程序代码和/或调用默认值PointF pt(static_cast<float>(point.x), static_cast<float>(point.y));if (rect.Contains(pt)){m_PlayVideo.put_uiMode(_T("Full"));}else{m_PlayVideo.put_uiMode(_T("None"));}CDialogEx::OnMouseMove(nFlags, point);}

四种风格分别为Full,None,Mini,Invisible,有机会的自己试一下

调试

鼠标移动到最下面是出现进度条和其他按钮

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。