今天天气不错,挺风和日丽的,这样的冬日暖暖的下午,小编想到要是来点音乐就完美了,于是乎小编准备自己做一个音乐播放器,顺便给大家来点福利。看好咯。

我就使用MFC来做吧,非常简单的程序,把过程记录下来,独乐了不如众乐乐。分享给大家。

首先,我们现在把对话框的属性中,的标题栏去掉,得到一个无边框的对话框。

然后拖4个按钮,分别把属性caption改为打开、播放、暂停和停止,对应的ID位OPEN、PLAY、PAUSE和STOP。

最后加上一个示例编辑框,和一个slider控件。

看!就是这样,很简单。

mfc常用皮肤工具(MFC打造---属于自己的mini音乐播放器)(1)

对话框弄好之后就很简单了。

1.打开我们的对话框的头文件,也就是dlg.h的那个,这个就是C语言里面的头文件哈。

在里面加上多媒体设备接口的头文件mmsystem.h和库文件winmm.lib.

(在这里顺便加上digital.h,后面调节音量是要用的哈)!!!。

So easy!!!对吧,世界上最远的距离不是编程,而是你只学过C语言C 的语法,最后也只能写一些控制台的程序,却不知道原来写程序还需要很多东西的。不是吗?(加QQ群:466572167,群内有大量学习资源可供学习)

那接下来重点就来了哦。我们回到对话框,用鼠标双击打开会跳转到一个函数,这个函数就是打开按钮的函数了。其他的播放、暂停和停止也是一样的双击他们,点点点!!!(但是点完之后别忘记了注释哈),就像下面这样:

mfc常用皮肤工具(MFC打造---属于自己的mini音乐播放器)(2)

所有工作已经到位,万事俱备,只欠东风!接下来,我们把功能代码填进去。请大家跟着小编一起敲,喂,就是你,快敲,再快点。

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; //打开设备

mciOpenParms.lpstrElementName = szMusicName;

mciSendCommand(NULL, MCI_OPEN, MCI_OPEN_ELEMENT | MCI_WAIT, (DWORD)(PVOID)&mciOpenParms);

m_IDDevice = mciOpenParms.wDeviceID;

//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);

}

运行,打开一首音乐,享受一下美好的下午和满满的成就感!!!

mfc常用皮肤工具(MFC打造---属于自己的mini音乐播放器)(3)

大功告成!!!!!收工。

最后呢,给大家分享一下,作为以后要成为伟大的程序猿的男人,大家可别指望着在学校学的那一丢丢内容,要多看看其他的东西,比如,C语言学完了。你能不能把所有的小游戏都做一遍呢?扫雷会吧?贪吃蛇会吧?那连连看呢?把C 也学完了,电脑上这些软件你会做吗?也不会。OH NO!!!你还需要学习的东西有很多,socket会了吗?数据库会了吗?DLL会了吗?Win32呢?MFC呢?QT?openGl?DirectX?...... 来吧来吧,到小编的交流群466572167,看看不同的世界吧。Fighting!!

,