




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit3Feelingsandemotions词汇拓展短语背记(二)北师大版英语八年级上册
- 移动商务基础(第二版)教案全套 第1-8章 移动商务概述 - 社会化客户服务
- 项目服务面试题目及答案
- 网络现象面试题目及答案
- 新解读《GB-T 36483-2018悬索桥用主缆平行钢丝索股》
- 天津文员面试题目及答案
- 龙马高中2024数学试卷
- 顺德美术面试题目及答案
- 历届山东高考数学试卷
- 青一名校数学试卷
- 石家庄供暖管网规划方案
- 检测公司销售管理制度
- 2025年全国统一高考语文试卷(全国一卷)含答案
- 偏瘫的潜在并发症护理
- (高清版)DGJ 08-102-2003 城镇高压、超高压天然气管道工程技术规程
- JJF(滇) 32-2024 医用水平旋转仪校准规范
- 解除共管账户协议书
- 心胸外科麻醉管理
- 《鸿蒙HarmonyOS应用开发基础》课件 第1-3章 初识鸿蒙、ArkTS(上)、ArkTS(下)
- 2025年医院血透室人员培训计划
- 《消防员心理素质培养》课件
评论
0/150
提交评论