最新win32API开发的音乐播放器资料.docx
- 文档编号:15591090
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:9
- 大小:30.64KB
最新win32API开发的音乐播放器资料.docx
《最新win32API开发的音乐播放器资料.docx》由会员分享,可在线阅读,更多相关《最新win32API开发的音乐播放器资料.docx(9页珍藏版)》请在冰点文库上搜索。
最新win32API开发的音乐播放器资料
win32API开发的音乐播放器
VS2010编译成功
//stdAfx.h
#ifndefVOL_UNIT
#defineVOL_UNIT10;
#endif
#include
//定时器
voidCALLBACKgetPosition(HWNDhwnd,UINTuMessage,UINTiTimerlDQWORDdwTime);
〃播放音乐
voidPlayMusic(HWNDhwnd);
〃播放下一首歌曲
voidPlayNextMusic(HWNDhwnd);
〃停止播放
voidStopMusic(HWNDhwnd);
〃打开音乐文件
voidOpenMusicFile(HWNDhwnd);
//resource.h
//
#defineIDD_MAIN101
#defineIDC_BTNPLAY1004
1014
#defineIDCMONTHCALENDAR1
//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
BOOLWINAPIMain_Proc(HWNDhWnd,UINTuMsg,WPARAMwParam,
LPARAMIParam);
BOOLMain_OnlnitDialog(HWNDhwnd,HWNDhwndFocus,LPARAMlParam);
voidMain_OnCommand(HWNDhwnd,intid,HWNDhwndCtl,UINT
codeNotify);
voidMain_OnClose(HWNDhwnd);
#endif
//MainDlg.cpp
#inelude"stdafx.h"
#inelude
#inelude
#include"resouree.h"
#include"MainDlg.h"
#include
TCHARCUR_MUSIC[MAX_PATH]="";//定义全局变量记录当前播放文件的短
路径
intvol=1000;//记录当前的音量
intindex=0;//记录当前播放文件的下标值
intvolume=1000;//记录声音大小
#pragmacomment(lib,"winmm.lib")
BOOLWINAPIMain_Proc(HWNDhWnd,UINTuMsg,WPARAMwParam,
LPARAMlParam)
{
switch(uMsg)
{
HANDLE_MSG(hWnd,WM」NITDIALOG,Main_OnlnitDialog);
HANDLE_MSG(hWnd,WM_COMMAND,Main_OnCommand);
HANDLE_MSG(hWnd,WM_CLOSE,Main_OnClose);
caseWM_HSCROLL:
{
HWNDhTrackbar=GetDlgltem(hWnd,IDC_SLIDER1);
if(hTrackbar==(HWND)IParam)
{
intnewPos=SendMessage(hTrackbar,TBM_GETPOS,0,0);
intselStart=SendMessage(hTrackbar,TBM_GETSELSTART,0,0);
intselEnd=SendMessage(hTrackbar,TBM_GETSELEND,0,0);
volume=newPos*VOL_UNIT;〃将音量记录到全局变量中
TCHARcmd[MAX_PATH+12];
wsprintf(cmd,"setaudio%svolumeto%i",CUR_MUSIC,volume);
mciSendString(cmd,"",O,NULL);
}
break;
}
}
returnFALSE;
}
BOOLMain_OnlnitDialog(HWNDhwnd,HWNDhwndFocus,LPARAMlParam)
{
HWNDhTrackbar=GetDlgItem(hwnd,IDC_SLIDER1);〃初始化是将滚动条设为最大声
intselEnd=SendMessage(hTrackbar,TBM_GETSELEND,0,0);
SendMessage(hTrackbar,TBM_SETPOS,(WPARAM)TRUE,(LPARAM)100);
returnTRUE;
}
voidMain_OnCommand(HWNDhwnd,intid,HWNDhwndCtl,UINTcodeNotify){
switch(id)
{
caseIDC_BTNOPEN:
{
OpenMusicFile(hwnd);
}
break;
///双击时播放
caseIDC_LISTMSC:
{
switch(codeNotify)
{
caseLBN_DBLCLK:
{
PlayMusic(hwnd);
}
break;
}
}
break;
//停止播放
caseIDC_BTNSTOP:
{
StopMusic(hwnd);
}
break;
}
}
voidMain_OnClose(HWNDhwnd)
{
EndDialog(hwnd,0);
}
//stdAfx.cpp
#include"stdafx.h"
#include
#include
#include"resource.h"
#include"MainDlg.h"
#include"stdafx.h"
#include
externTCHARCUR_MUSIC[MAX_PATH];//定义外部变量记录当前播放歌曲
的短路径
externintindex;
externintvolume;
voidOpenMusicFile(HWNDhwnd)
{
TCHARfileName[MAX_PATH];
OPENFILENAMEofn;
ZeroMemory(&ofn,sizeof(ofn));ofn.lStructSize=sizeof(OPENFILENAME);ofn.hwndOwner=hwnd;〃对话框的父窗口ofn.Flags=0;
ofn.hInstanee=NULL;
ofn.lCustData=0;
ofn.lpfnHook=NULL;ofn.lpstrCustomFilter=NULL;ofn.lpstrDefExt=TEXT("bmp");
ofn.lpstrFile=fileName;
ofn.lpstrFile[0]=TEXT('\0');
ofn.lpstrFileTitle=NULL;
ofn.lpstrFilter=TEXT("MP3音乐\0*mp3");
ofn.lpstrlnitialDir=NULL;
ofn.lpstrTitle=TEXT("辉哥NODPAD");ofn.lpTemplateName=NULL;
ofn.nFileExtension=0;
ofn.nFileOffset=0;
ofn.nFilterlndex=0;
ofn.nMaxCustFilter=0;
ofn.nMaxFile=MAX_PATH;
ofn.nMaxFileTitle=0;
if(GetOpenFileName(&ofn))
{
HWNDIstHwnd=GetDlgltem(hwnd,IDC_LISTMSC);
intcount=ListBox_GetCount(lstHwnd);
ListBox」nsertString(lstHwnd,count,fileName);〃加入到ListBOX中
}
}
voidPlayMusic(HWNDhwnd)
{
//首先停止当前播放的歌曲
StopMusic(hwnd);
〃得到要播放的歌曲路径
HWNDlistHwnd=GetDlgItem(hwnd,IDC_LISTMSC);
intcurSelIndex=ListBox_GetCurSel(listHwnd);
index=curSelIndex;//将当前播放的歌曲记录到全局变量中
TCHARtemp[MAX_PATH+12];
ListBox_GetText(listHwnd,curSellndex,temp);
GetShortPathName(temp,CUR_MUSIC,sizeof(CUR_MUSIC));
TCHARplayCmd[MAX_PATH+12];
wsprintf(playCmd,"play%s",CUR_MUSIC);
mciSendString(playCmd,"",O,NULL);
SetTimer(hwnd,index,1000,getPosition);
TCHARcmd[MAX_PATH+12];
wsprintf(cmd,"setaudio%svolumeto%i",CUR_MUSIC,volume);mciSendString(cmd,"",O,NULL);
}
//定时器
uMessage,UINT
voidCALLBACKgetPosition(HWNDhwnd,UINT
iTimerlDQWORDdwTime)
{
TCHARstatusCmd[MAX_PATH+12];
TCHARsPosition[256];
wsprintf(statusCmd,"status%sposition",CUR_MUSIC);
mciSendString(statusCmd,sPosition,sizeof(sPosition),0);
//播放完毕
if(!
strcmp("0",sPosition))
{
PlayNextMusic(hwnd);
KillTimer(hwnd,iTimerID);
}
}
////main.cpp
#include"stdafx.h"
#include"resource.h"
#include"MainDlg.h"
#include
intAPIENTRYWinMain(HINSTANCEhlnstanee,
HINSTANCEhPrevInstanee,
LPSTRIpCmdLine,
intnCmdShow)
{
InitCommonControls();
DialogBox(hlnstanee,MAKEINTRESOURCE(IDD_MAIN),NULL,Main_Proc);
return0;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 win32API 开发 音乐 播放 资料
![提示](https://static.bingdoc.com/images/bang_tan.gif)