已阅读5页,还剩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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家应急预案总局(3篇)
- 军人滑雪活动方案策划(3篇)
- 班级绩效管理制度的起草(3篇)
- 2025年重庆电讯职业学院单招(计算机)考试备考题库及答案1套
- 2025年全国网络安全知识竞赛题库及答案(共220题)
- 2026年桂林师范高等专科学校单招职业倾向性考试题库附答案
- 2026年成都农业科技职业学院单招职业技能考试题库附答案
- 2026年遵义职业技术学院单招职业倾向性考试题库附答案
- 2026年山西财贸职业技术学院单招职业技能考试题库附答案
- 2026年湖北生态工程职业技术学院单招职业适应性考试模拟测试卷附答案
- 学堂在线 海上作战与三十六计 期末考试答案
- 2025初二英语阅读理解专项训练100篇
- 餐饮财务会计知识培训课件
- 面部骨雕术专业知识培训课件
- 中国中空玻璃用丁基密封胶项目投资计划书
- 算法治理与人工智能在司法领域的应用与风险控制报告
- 2025年及未来5年中国足浴服务行业发展潜力分析及投资战略咨询报告
- 2025年公安部交管局三力测试题库及答案
- 2025版《简明新疆地方史读本》全册教学设计教案
- 国开《学位论文指南》形考作业1-2答案
- 建筑给水钢塑复合管管道工程技术规程
评论
0/150
提交评论