基于MFC的Media Player播放器的制作(3---功能实现)
| 版权声明:本文为博主原创文章,未经博主允许不得转载。
下面我们试试一下,按下退出Button退出播放器的功能:
首先,我们双击退出Button按钮,就会弹出下图的框:
上面的弄好之后我们就实现退出函数的功能: 这个代码写好之后,我们可以运行一下,在单击退出按钮,可以发现,按下之后我
们的播放器自动退出
下面我们在实现打开文件的功能,这个功能比较复杂,第一步我们首先双击打开文件按钮,在CPandaPlayerDlg.cpp中创建函
数OnOpenfile();创建过程同上。
可以看到函数;然后在函数内添加实现方法
实现代码:
在这个函数中有几个变量是全局变量要定义
在这些全部弄好之后,我们就可运行程序了;如下图所示:
下面在介绍一个关于播放的函数实现;这个实现要建立文件关联,因为在前面我介绍了play()函数是在CWMPControls类
中,因此要使用play()函数和CWMPControls类中的一些其他的函数,我们就要建立文件关联。
第一步:创建函数;方法同上
第二步:建立文件关联
1> 首先我们找到CWMPControls类的头文件wmpcontrols.h,在CPandaPlayerDlg.h中添加
#include "wmpcontrols.h"
2> 将头文件添加好了之后,我们在CPandaPlayerDlg.h的CPandaPlayerDlg类中创建CWMPControls的变量为:
CWMPControls m_MediaControl;
3> 创建好变量之后,我们在CPandaPlayerDlg.cpp文件中找到函数OnInitDialog(),在OnInitDialog()函数中创建文件
关联;
m_MediaControl=static_cast<CWMPControls>(m_ActiveMovie.GetControls());//文件关联
4> 文件关联全部弄好之后我们就可以,实现OnPlay()函数中的代码了;
实现了上面的所有步骤之后,我们运行就可以看到效果了;
因为在CWMPControls类中存在着,pause()和stop()函数,我们可以使用这两个函数实现暂停和播放
如下函数中实现代码:
代码实现:
运行效果:
上面是关于播放的一些函数,下面在介绍一下音量的控制,音量控制和播放一样,要建立文件关联,因为音量的控制在
CWMPSettings类中,我们同上的步骤一样建立类的关联,如图:
下面在实现相应的功能:
实现代码:
运行效果:
介绍到这里为止:
注意:
1. 如果要引入除开CWMPPlayer4类的其他的类库中的函数则必须建立文件关联,方法同上,文件关联在CWMPPlayer4
类中均有对应的实例化函数。在前面的《基于MFC的Media Player播放器控件的属性和方法》中已经全部介绍。根据自己的需
求去弄。但是在CWMPPlayer4中的方法则可以直接引用,通过建立的CWMPPlayer4 对象m_ActiveMovie直接调用就行。
2. 如果是追求完美的可以通过将界面的背景添加背景图片,方法如下(实现对话框里添加位图作为背景图):
首先工程文件夹下找到res文件夹,在里面增加BMP格式位图资源,之后在对话框里添加一个小图片,然后在对话框里添加
此图片控件,修改类型属性,选择位图ID即可添加图片了,最后在 CLotteryDlg::OnPaint()里的else之后括号里添加如下代码
就行:
// CDialog::OnPaint(); 设置对话框位图时要禁止调用此对话框 *
// 以下设置对话框的背景位图
CPaintDC dc(this);
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1); //这个IDB_BITMAP1要自己添加
CBrush brush;
brush.CreatePatternBrush(&bitmap);
CBrush* pOldBrush = dc.SelectObject(&brush);
dc.Rectangle(,,,); // 这些参数可以调整图片添加位置和大小
dc.SelectObject(pOldBrush);
CDialog::OnPaint();
这里我没有实现背景,效果图就没有了,追求完美的可以试试。
附上我写好的运行截图:
基于MFC的Media Player播放器的制作(3---功能实现)的更多相关文章
- 基于MFC的Media Player播放器的制作介绍
| 版权声明:本文为博主原创文章,未经博主允许不得转载. 因为这次多媒体课程设计做一个基于MFC的播放器,因为本人实力太菜,需要播放音乐或视频文件时候,自己写不出解码 函数,所以准备使用第三方多媒 ...
- 基于MFC的Media Player播放器的制作(1---播放器界面的布局)
| 版权声明:本文为博主原创文章,未经博主允许不得转载. 通过上面的一些预备知识,我们现在就可以自己来制作基于MFC的播放器了,接下来我们讲的是使用MFC制作我们播放器 的界面. 首先,我们我们打 ...
- 基于MFC的Media Player播放器的制作(2---导入第三方库和介绍第三方库)
| 版权声明:本文为博主原创文章,未经博主允许不得转载. 这一节我们介绍如何导入类库,和介绍类库的一功能和介绍MFC的一些主要的模块部分.下面是如何导入类库.第一步我们选中 Media Playe ...
- 基于MFC的Media Player播放器的制作(4---功能实现代码)
| 版权声明:本文为博主原创文章,未经博主允许不得转载. PandaPlayerDlg.h // PandaPlayerDlg.h : header file // //{{AFX_INCLUDE ...
- 基于MFC的Media Player播放器的控件方法和属性介绍
| 版权声明:本文为博主原创文章,未经博主允许不得转载. 因为使用第三方多媒体库或是第三方控件(Media Player)辅助播放,我们则必须要了解到Media Player控件的一些属性 和方法 ...
- 基于MFC的Media Player播放器制作的SetTimer函数介绍
| 版权声明:本文为博主原创文章,未经博主允许不得转载. SetTimer是一种API函数,位于user32.dll中.你想每隔一段时间执行一件事的的时候,你可以使用它. 使用定时器的方法比 较简 ...
- winform中的Windows Media Player播放器设置
namespace WindowsMediaPlayer{ public partial class Form1 : Form { Form2 form2;//声明from2窗体 public For ...
- 最简单的基于FFMPEG+SDL的音频播放器 ver2 (采用SDL2.0)
===================================================== 最简单的基于FFmpeg的音频播放器系列文章列表: <最简单的基于FFMPEG+SDL ...
- 基于jQuery仿QQ音乐播放器网页版代码
基于jQuery仿QQ音乐播放器网页版代码是一款黑色样式风格的网页QQ音乐播放器样式代码.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class="m ...
随机推荐
- tensorflow|tf.train.slice_input_producer|tf.train.Coordinator|tf.train.start_queue_runners
#### ''' tf.train.slice_input_producer :定义样本放入文件名队列的方式[迭代次数,是否乱序],但此时文件名队列还没有真正写入数据 slice_input_prod ...
- 搜狗拼音、QQ拼音输入法、2345拼音输入法、百度输入法 、手心输入法对比。(个人体会)
搜狗拼音.QQ拼音输入法.2345拼音输入法.百度输入法 .手心输入法对比. 这几个输入法对比的感觉,做个记录.自己记录一下,如果恰巧有朋友也遇到类似的情况,仅供参考. 词库量 搜狗 > 百度 ...
- python随机生成个人信息
python随机生成个人信息 #!/usr/bin/env python3 # -*- coding:utf-8 -*- import sys import random class Personal ...
- RabbitMq--3--案例
https://blog.csdn.net/hellozpc/article/details/81436980
- js常用扩展方法
在日常的开发过程中,经常会碰到javaScript原生对象方法不够用的情况,所以经常会对javaScript原生方法进行扩展.下面就是在实际工作时,经常使用的一些方法,做一下记录,有需要的可以拿去. ...
- 浏览器中的JavaScript事件循环机制
浏览器的事件循环机制是HTML中定义的规范. JavaScript有一个主线程和调用栈,所有的任务都会被放到调用栈等待主线程执行. JS调用栈 是一种先进后出的数据结构.当函数被调用时,会被添加到栈中 ...
- 笔试算法题及解答(Python)
1.给定任意一个正整数,求比这个数大且最小的“不重复数”,“不重复数”的含义是相邻两位不相同,例如1101是重复数,而1201是不重复数 # coding:utf-8 ''' Created on 2 ...
- 虚拟机设置静态IP地址
前言 NAT连接方式只能配置一次,配置好子网掩码和网关IP后,虚拟机NAT连接的ip段都是同一个ip段 1.菜单栏选择 编辑 -> 虚拟网络编辑器,打开虚拟网络编辑器对话框,选择Vmnet8 N ...
- Session的load和get方法区别是什么?
①如果没有找到符合条件的记录,get方法返回null值,而load方法会抛出异常: ②get方法直接返回实体类对象,load方法返回实体类对象的代理: ③在Hibernate3之前,get方法只在一级 ...
- SpringMvc支持Ajax概述【见前两篇随笔--详述前后数据互通】
1.原生javaWeb:不再用 1).导入GSON: 2).返回的数据用GSON转成json 3).写出去: 2.SpringMVC快速的完成ajax功能? 导包 jackson-annotation ...