免费预览已结束,剩余5页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
win32API 开发的音乐播放器vs2010编译成功/stdAfx.h#ifndefVOL_UNIT#defineVOL_UNIT10;#endif#include/定时器voidCALLBACKgetPosition(HWNDhwnd,UINTuMessage,UINTiTimerID,DWORDdwTime);/播放音乐voidPlayMusic(HWNDhwnd);/播放下一首歌曲voidPlayNextMusic(HWNDhwnd);/停止播放voidStopMusic(HWNDhwnd);/打开音乐文件voidOpenMusicFile(HWNDhwnd);/resource.h/#defineIDD_MAIN101#defineIDC_BTNPLAY1004#defineIDC_BTNSTOP1005#defineIDC_LISTMSC1006#defineIDC_SLIDER11007#defineIDC_BTNOPEN1008#defineIDC_MONTHCALENDAR11014/Nextdefaultvaluesfornewobjects/#ifdefAPSTUDIO_INVOKED#ifndefAPSTUDIO_READONLY_SYMBOLS#define_APS_NEXT_RESOURCE_VALUE103#define_APS_NEXT_COMMAND_VALUE40001#define_APS_NEXT_CONTROL_VALUE1015#define_APS_NEXT_SYMED_VALUE101#endif#endif/MainDlg.h#ifndef _MAIN_H#define _MAIN_H#include BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam);void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify);void Main_OnClose(HWND hwnd);#endif/MainDlg.cpp#include stdafx.h#include #include #include resource.h#include MainDlg.h#includeTCHAR CUR_MUSICMAX_PATH = ;/定义全局变量记录当前播放文件的短路径int vol =1000 ;/记录当前的音量int index = 0 ;/记录当前播放文件的下标值int volume = 1000;/记录声音大小#pragma comment(lib,winmm.lib)BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) switch(uMsg) HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog); HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);case WM_HSCROLL:HWND hTrackbar = GetDlgItem(hWnd, IDC_SLIDER1);if (hTrackbar = (HWND)lParam)int newPos = SendMessage(hTrackbar, TBM_GETPOS, 0, 0);int selStart = SendMessage(hTrackbar, TBM_GETSELSTART, 0, 0);int selEnd = SendMessage(hTrackbar, TBM_GETSELEND, 0, 0);volume = newPos*VOL_UNIT;/将音量记录到全局变量中TCHAR cmdMAX_PATH+12;wsprintf(cmd,setaudio %s volume to %i,CUR_MUSIC,volume);mciSendString(cmd,0,NULL);break; return FALSE;BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)HWND hTrackbar = GetDlgItem(hwnd, IDC_SLIDER1);/初始化是将滚动条设为最大声int selEnd = SendMessage(hTrackbar, TBM_GETSELEND, 0, 0);SendMessage(hTrackbar, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)100); return TRUE;void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)switch(id)case IDC_BTNOPEN:OpenMusicFile(hwnd);break;/ 双击时播放case IDC_LISTMSC:switch(codeNotify)case LBN_DBLCLK:PlayMusic(hwnd);break;break;/停止播放case IDC_BTNSTOP:StopMusic(hwnd);break;void Main_OnClose(HWND hwnd) EndDialog(hwnd, 0);/stdAfx.cpp#include stdafx.h#include #include #include resource.h#include MainDlg.h#include stdafx.h#include extern TCHAR CUR_MUSICMAX_PATH ;/定义外部变量记录当前播放歌曲的短路径extern int index;extern int volume;void OpenMusicFile(HWND hwnd)TCHAR fileNameMAX_PATH;OPENFILENAME ofn;ZeroMemory(&ofn,sizeof(ofn);ofn.lStructSize = sizeof(OPENFILENAME);ofn.hwndOwner = hwnd;/对话框的父窗口ofn.Flags = 0;ofn.hInstance = NULL;ofn.lCustData = 0;ofn.lpfnHook = NULL;ofn.lpstrCustomFilter = NULL;ofn.lpstrDefExt = TEXT(bmp);ofn.lpstrFile = fileName;ofn.lpstrFile0 = TEXT(0);ofn.lpstrFileTitle = NULL;ofn.lpstrFilter = TEXT(MP3音乐0*.mp3);ofn.lpstrInitialDir = NULL;ofn.lpstrTitle = TEXT(辉哥NODPAD);ofn.lpTemplateName = NULL;ofn.nFileExtension = 0;ofn.nFileOffset = 0;ofn.nFilterIndex = 0;ofn.nMaxCustFilter = 0;ofn.nMaxFile = MAX_PATH;ofn.nMaxFileTitle = 0;if(GetOpenFileName(&ofn)HWND lstHwnd = GetDlgItem(hwnd,IDC_LISTMSC);int count = ListBox_GetCount(lstHwnd);ListBox_InsertString(lstHwnd,count,fileName);/加入到ListBOX中void PlayMusic(HWND hwnd)/首先停止当前播放的歌曲StopMusic(hwnd);/得到要播放的歌曲路径HWND listHwnd = GetDlgItem(hwnd,IDC_LISTMSC);int curSelIndex = ListBox_GetCurSel(listHwnd);index = curSelIndex;/将当前播放的歌曲记录到全局变量中TCHAR tempMAX_PATH+12;ListBox_GetText(listHwnd,curSelIndex,temp);GetShortPathName(temp,CUR_MUSIC,sizeof(CUR_MUSIC);TCHAR playCmdMAX_PATH+12;wsprintf(playCmd,play %s,CUR_MUSIC);mciSendString(playCmd,0,NULL);SetTimer(hwnd,index,1000,getPosition);TCHAR cmdMAX_PATH+12;wsprintf(cmd,setaudio %s volume to %i,CUR_MUSIC,volume);mciSendString(cmd,0,NULL);/定时器void CALLBACK getPosition(HWND hwnd,UINT uMessage,UINT iTimerID,DWORD dwTime)TCHAR statusCmdMAX_PATH+12;TCHAR sPosition256;wsprintf(statusCmd,status %s position,CUR_MUSIC);mciSendString(statusCmd, sPosition, sizeof(sPosition),0);/播放完毕if(!strcmp(0,sPosition)PlayNextMusic(hwnd);KillTimer(hwnd,iTimerID);/main.cpp#include stdafx.h#include res
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年下半年盐城市大丰区属国有企业招聘15人考试备考题库及答案解析
- 2026年浙江省宁波市事业单位人员招聘笔试参考题库及答案详解
- 2026年丽江地区公务员人员招聘考试模拟试题及答案详解
- 2025-2026学年关于锻炼的说课稿
- 2026年安阳市殷都区公务员人员招聘考试参考试题及答案详解
- 2026赣南科技学院高层次人才招聘(第三批)笔试备考题库及答案解析
- 2026年郑州市邙山区公务员人员招聘笔试备考题库及答案详解
- 2026年毕节地区毕节市公务员人员招聘考试模拟试题及答案详解
- 2026江西艺术职业学院公开招聘编制外合同聘用制工作人员15人考试备考试题及答案解析
- 2026年邵阳市大祥区公务员人员招聘笔试参考试题及答案详解
- 风湿免疫科|系统性红斑狼疮教学查房完整课件
- 2026年出租厂房安全责任告知书
- 2026广西壮族自治区机关事务管理局公开招聘广西实验幼儿园实名编制10人笔试备考试题及答案详解
- 2026年国家能源集团笔试历年真题
- 江西文化演艺发展集团有限责任公司招聘笔试真题2025
- 2026年山东烟台市高三二模高考数学试卷试题(含答案)
- 2026年黑龙江哈三中高三一模英语试题含答案
- 低空空域资源合理配置与运行效率优化策略研究
- 2026年人工智能训练师(二级)实操技能综合试题及解析
- 放射治疗科直线加速器操作规范
- 雨课堂学堂在线学堂云《跨文化交际英语(北京理工)》单元测试考核答案
评论
0/150
提交评论