今天天气不错,挺风和日丽的,这样的冬日暖暖的下午,小编想到要是来点音乐就完美了,于是乎小编准备自己做一个音乐播放器,顺便给大家来点福利。看好咯。
我就使用MFC来做吧,非常简单的程序,把过程记录下来,独乐了不如众乐乐。分享给大家。
首先,我们现在把对话框的属性中,的标题栏去掉,得到一个无边框的对话框。
然后拖4个按钮,分别把属性caption改为打开、播放、暂停和停止,对应的ID位OPEN、PLAY、PAUSE和STOP。
最后加上一个示例编辑框,和一个slider控件。
看!就是这样,很简单。
对话框弄好之后就很简单了。
1.打开我们的对话框的头文件,也就是dlg.h的那个,这个就是C语言里面的头文件哈。
在里面加上多媒体设备接口的头文件mm和库文件winmm.lib.
(在这里顺便加上digi,后面调节音量是要用的哈)!!!。
然后我们要加上一个成员变量 m_IDDEVICE。
So easy!!!对吧,世界上最远的距离不是编程,而是你只学过C语言C++的语法,最后也只能写一些控制台的程序,却不知道原来写程序还需要很多东西的。不是吗?(加QQ群:466572167,群内有大量学习资源可供学习)
那接下来重点就来了哦。我们回到对话框,用鼠标双击打开会跳转到一个函数,这个函数就是打开按钮的函数了。其他的播放、暂停和停止也是一样的双击他们,点点点!!!(但是点完之后别忘记了注释哈),就像下面这样:
所有工作已经到位,万事俱备,只欠东风!接下来,我们把功能代码填进去。请大家跟着小编一起敲,喂,就是你,快敲,再快点。
1.打开:
//打开文件
voidCMiniMusicPlayerDlg::OnBnClickedBunOpen()
{
//打开系统的选择界面
CFileDialog dlg(TRUE, //打开文件 FALSE //另存为
NULL, //默认的拓展名 .txt .doc .exe .dat
NULL, //默认的文件名
OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST, //文件必须存在 文件的路径必须存在
L"mp3文件(*.mp3)|*.mp3|WMA文件(*.wma)|*.wma|wav文件(*.wav)|*.wav|所有文件(*.*)|*.*||"); //过滤
dlg.DoModal();
//打开一首歌曲
//MCI :media control interface 多媒体控制接口
//windows中用来控制多媒体设备的高层命令接口
//MCIDEVICEID IDDevice; //用来保存我们的歌曲在应用程序里面
mciSendCommand(m_IDDevice,MCI_CLOSE,0,0);
//获取歌曲的路径
CString szMusicName = dlg.GetPathName();
//MessageBox(szMusicName);
MCI_OPEN_PARMS mciOpenParms; //打开设备
mciO = szMusicName;
mciSendCommand(NULL, MCI_OPEN, MCI_OPEN_ELEMENT | MCI_WAIT, (DWORD)(PVOID)&mciOpenParms);
m_IDDevice = mciO;
//OnBnClickedBunPlay();
GetDlgItem(IDC_BUN_PLAY)->EnableWindow(TRUE);
GetDlgItem(IDC_BUN_PAUSE)->EnableWindow(TRUE);
GetDlgItem(IDC_BUN_STOP)->EnableWindow(TRUE);
}
2.播放
//播放音乐
voidCMiniMusicPlayerDlg::OnBnClickedBunPlay()
{
MCI_PLAY_PARMS mciPlayParms; //播放设备
mciPlayParms.dwCallback = NULL; //回调为空
mciPlayParms.dwFrom = 0; //从零开始播放
//播放歌曲
mciSendCommand(m_IDDevice, MCI_PLAY, MCI_FROM | MCI_NOTIFY, (DWORD)(PVOID)&mciPlayParms);
}
3.暂停
//暂停播放
voidCMiniMusicPlayerDlg::OnBnClickedBunPause()
{
CString str;
GetDlgItemText(IDC_BUN_PAUSE,str);
if (str == L"暂停")
{
mciSendCommand(m_IDDevice, MCI_PAUSE, 0, 0);
SetDlgItemText(IDC_BUN_PAUSE, L"继续");
}
else
{
mciSendCommand(m_IDDevice, MCI_RESUME, 0, 0);
SetDlgItemText(IDC_BUN_PAUSE, L"暂停");
}
}
4.停止
//停止播放
voidCMiniMusicPlayerDlg::OnBnClickedBunStop()
{
mciSendCommand(m_IDDevice, MCI_STOP, 0, 0);
mciSendCommand(m_IDDevice, MCI_CLOSE, 0, 0);
GetDlgItem(IDC_BUN_PLAY)->EnableWindow(FALSE);
GetDlgItem(IDC_BUN_PAUSE)->EnableWindow(FALSE);
GetDlgItem(IDC_BUN_STOP)->EnableWindow(FALSE);
}
运行,打开一首音乐,享受一下美好的下午和满满的成就感!!!
大功告成!!!!!收工。
最后呢,给大家分享一下,作为以后要成为伟大的程序猿的男人,大家可别指望着在学校学的那一丢丢内容,要多看看其他的东西,比如,C语言学完了。你能不能把所有的小游戏都做一遍呢?扫雷会吧?贪吃蛇会吧?那连连看呢?把C++也学完了,电脑上这些软件你会做吗?也不会。OH NO!!!你还需要学习的东西有很多,socket会了吗?数据库会了吗?DLL会了吗?Win32呢?MFC呢?QT?openGl?DirectX?…… 来吧来吧,到小编的交流群466572167,看看不同的世界吧。Fighting!!
1.文章《“怎么学习mfc“怎么学习化妆…》援引自互联网,为网友投稿收集整理,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删请点击页脚联系方式。
2.文章《“怎么学习mfc“怎么学习化妆…》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
相关推荐
- . 现代买票为什么带上携程保险
- . 潮阳怎么去广州南站
- . 湖南马拉河怎么样
- . 烧纸为什么到三岔路口
- . 百色为什么这么热
- . 神州租车怎么样
- . 芜湖方特哪个适合儿童
- . 护肤品保养液是什么类目
- . 早晚的护肤保养有哪些项目
- . 女孩护肤品怎么保养的最好