[MFC] MFC音乐播放器 傻瓜级教程 网络 搜索歌曲 下载


 

 

         》目录《

》——————————————————————《

1、建立工程 

1、建立一个MFC工程,命名为Tao_Music 

2、选择为基本对话框 

3、包含Windows Sockts 

4、使用静态链接库 [方便一会直接生成的exe文件单独可以发布] 

2、 搭建界面 

1、 拖入控件: 

2、 控件拖入并摆好 

3、 控件属性设置: 

3、 写代码实现功能 

1、变量绑定: 

2、加入图片资源 

3、新建mp3类: 

4、修改Tao_MusicDlg.h 

5、修改Tao_Music.cpp 

6、功能实现: 

7、加一个TImer消息使时间跑起来! 

8、给音量控制滑块加消息,使音量控制实现 

4、编译运行完工! 

 

》——————————————————————《

1、建立工程

1、建立一个MFC工程,命名为Tao_Music

 

2、选择为基本对话框

 

3、包含Windows Sockts

[因为要用网络功能]

 

4、使用静态链接库 [方便一会直接生成的exe文件单独可以发布]

 

 

2、搭建界面

1、拖入控件:

拖入7个用于播放控制的button,一个picture控件,一个控制音量的滑块。一个Group Box用于盛放搜索功能各个控件及Group Box中2个静态文本,2个可编辑文本,一个搜索按钮。最下面的是一个List Control用于显示歌曲的。最终效果如下:

 

2、控件拖入并摆好

 

3、控件属性设置:

选中Button1右键选择属性,弹出:

 

将其改为:

 

相同的道理将音乐控制的7个按钮和搜索按钮的Styles和Extended Styles都设置成相同的风格。

Button2-8的General属性依次为:【注意大小写】

 

 

 

相应的这里picture控件的属性为:

 

 

 

音量滑块的属性为:

 

Group Box的属性为:

 

 

2个静态文本的属性只要改General就行啦:

 

 

2个文本编辑框也只要改General就行:

 

 

最后是list control控件的属性:

 

 

 

好啦,最终的效果就是这样的:前面这么啰嗦大家千万别弄错啦!接下来就是写代码啦!

 

3、写代码实现功能

1、变量绑定:

查看->建立类向导->Member Variables

 

将其设置为:

【双击对应蓝条即出现设置对话框】最后别忘点确定!

 

2、加入图片资源

【首先用格式工厂转换出32X32的24张bmp图片,放入工程文件的res文件中->进入Resource界面->右键Tao_Music resources->insert->弹出的对话框点击导入然后将你的24张bmp图片一个一个导入,注意这里最多每次导入8个,要分批导入!导入后的ID为IDB_BITMAP1----IDB_BITMAP24】

 

3、新建mp3类:

【插入->新建类】

 

  mp3.h
  mp3.cpp

 

 

4、修改Tao_MusicDlg.h

在CTao_MusicDlg类里加入下面函数和变量

复制代码
 1 public:
 3 void Show(int cnt);
 5 void addsong(TCHAR * name);
 7 void suiji();
 9 void pre();
11 void next();
13 void drawpic(int nTimerID);
15 BOOL AnalyseLrc(TCHAR* LrcFile);//歌词解析函数
17 BOOL DownLoad(TCHAR* Url, TCHAR* SaveName);//下载资源函数
19 bool down(TCHAR* song,TCHAR* songer,TCHAR* getstr);//下载XML资源函数
20 
21  
23 public:
25 int hour,minute,second;
27 CString cursong;
29 int showstr;
31 int donghuakind;//动画种类[初始化时给一个随机数,选择显示的动画种类]
33 CImageList m_imList;
35 typedef struct _LRC_INFO//定义歌词结构体
37 {
39 int Time;
41 TCHAR Lyric[256];
43 }LRC_INFO;
45 LRC_INFO LrcInfo[500];
复制代码

 

5、修改Tao_Music.cpp

在include下面再引入下面几个文件和库:

复制代码
1 #include "mp3.h"
2 #include "mmsystem.h"
3 #include "digitalv.h"
4 #include <afxinet.h>
5 #include <shlwapi.h>
6 #pragma comment(lib,"Winmm.lib")
7 #pragma comment(lib,"wininet.lib")   
8 #pragma comment(lib, "shlwapi.lib")
复制代码

 

紧接着在全局声明一个mp3型的全局变量:

 1 mp3 Mp3;                                                                                                                                           

转到OnInitDialog()函数处在return 前加入如下代码:

复制代码
 1 // TODO: Add extra initialization here
 2 SetWindowText("MP3播放器");//标题
 3 m_slider.SetRange(0,1000); //移动范围
 4 m_slider.SetPos(500);//滑块指针的初始位置
 5 GetDlgItem(IDC_open)->EnableWindow(FALSE);
 6 GetDlgItem(IDC_pause)->EnableWindow(FALSE);
 7 GetDlgItem(IDC_del)->EnableWindow(FALSE);
 8 //List 初始化---------------------
 9 // 设置CListCtrl控件扩展风格:整行选中\子项目图标列表|LVS_EX_GRIDLINES
10 DWORD dwStyle; 
11 dwStyle =m_StoreItems.GetExtendedStyle();  
12 dwStyle = dwStyle|LVS_EX_FULLROWSELECT|LVS_EX_SUBITEMIMAGES ;
13 m_StoreItems.SetExtendedStyle(dwStyle);   
14 // 载入32*32像素 24位真彩(ILC_COLOR24)图片
15 m_imList.Create(32,32,ILC_COLOR24,10,20);    // 创建图像序列CImageList对象
16 // 设置CImageList图像列表与CListCtrl控件关联 LVSIL_SMALL小图标列表
17 m_StoreItems.SetImageList(&m_imList,LVSIL_SMALL);
18 // 向列表视图控件InsertColumn插入3列数据 
19 CRect mRect;
20 m_StoreItems.GetWindowRect(&mRect);                     // 获取控件矩形区域
21 int length = mRect.Width()-3;
22 m_StoreItems.InsertColumn(0, _T("图片"), LVCFMT_CENTER,40, -1);
23 m_StoreItems.InsertColumn(1, _T("信息"), LVCFMT_LEFT, length-60, -1);
24 //--------------
25 cursong="";
26 showstr=0;
27 donghuakind=rand()%4;
28 // TODO: Add extra initialization here
复制代码

 

在文件最后依次添加如下函数:

  其它函数

 

6、功能实现:

进入form界面:双击添加按钮:

 

点击ok在新产生的函数中加入代码:

  View Code

 

哈哈,运行一下看看第一个按钮的功能实现没!!!

同样第二个按钮有:

  View Code

 

第3个按钮:

 

1 pre();

 

第4个按钮:

 

  View Code

 

第5个按钮:

 

1 next();

 

第6个按钮:

 

  View Code

 

第7个按钮:

 

  View Code

 

第8个按钮:

 

  View Code

 

到目前为止已经可以搜索、加载音乐播放、暂停....功能都有啦!

 

似乎音量还不能起作用,下面的列表不能双击播放【上面的显示条有点偏上,大家可以调一下上面的按钮,使两个文本条带正好在黑框里,也可以改动代码,代码在show函数里,通过改动 int tposx,tposy,sposx,sposy;四个变量的值来控制文本显示位置,其中t开头的控制下面的,s开头的控制上面的】

 

7、加一个TImer消息使时间跑起来!

查看->类向导->Message Maps->在Messages中找到WM_TIMER双击,在Member functions将出现对应的消息函数:

 

 

双击对应函数,进入代码编辑区:

加入代码:

1 if(nIDEvent==0)Show(3);

 

现在时间可以跑啦!

 

8、给list添加消息函数,使双击可以播放:

 

点击ok接着双击Member Function对应的函数进入代码编辑区:加入代码:

  View Code

 

 

9、给音量控制滑块加消息,使音量控制实现

双击member function对应的函数,进入代码编辑区,加入代码:

1 Mp3.Setvolumn(1000-m_slider.GetPos());
2 UpdateData(false);

 

 

双击member function对应的函数,进入代码编辑区,加入代码:

1 Mp3.Setvolumn(1000-m_slider.GetPos());

 

 

 

 

编译运行完工!

哈哈,终于所有的任务完成,编译运行,听听自己做的音乐播放器咋样!【如果想加一个最小化按钮,就点击form的属性,做相应的修改】

 

 




本文转自beautifulzzzz博客园博客,原文链接:http://www.cnblogs.com/zjutlitao/p/3768717.html,如需转载请自行联系原作者

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值