目的:一个音乐播放器,通过点击IDC_BUTTONOPEN按钮打开文件并播放文件,通过IDC_BUTTONPAUSE按钮暂停播放,使用mcisengstring函数;
问题:当我点击播放按钮并选择Mp3文件,可以正常播放并显示其完整路径;但是我在点击暂停按钮希望暂停播放并显示完整路径时,显示内容就对了(如下图);
哪里有错呢?
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
switch(id)
{
TCHAR long_path[MAX_PATH],short_path[MAX_PATH],cmd[MAX_PATH+15],songname[FILE_NAME];
//打开文件
case IDC_BUTTONOPEN:
{
//初始化打开Dlg
OPENFILENAME ofn;
TCHAR szFile[MAX_PATH];
//char szFile[MAX_PATH];定义一个长度为MAX_PATH的char数组。
//MAX_PATH是系统定义的一个宏,260。Windows操作系统文件路径的 最大长度。
ZeroMemory(&ofn,sizeof(ofn));
//memset 使用前将其成员(内存)清零是个好习惯
ofn.lStructSize = sizeof(ofn);
ofn.lpstrFile = szFile;
ofn.lpstrFile[0] = TEXT('\0');
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = TEXT("ALL\0*.*\0mp3\0*.mp3\0wma\0*.wma\0");
ofn.nFilterIndex = 2; //默认使用mp3作为过滤器
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.hwndOwner = hwnd;//
ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
if (GetOpenFileName(&ofn))
//getopenfilename()返回值是BOOL类型,点确定返回TRUE;点取消返回FALSE;
{
GetShortPathName(szFile,short_path,sizeof(short_path));
wsprintf(cmd,"play %s",short_path);
mciSendString(cmd,"",0,NULL);
//显示当前播放歌曲名字(不含绝对路径)
GetFileTitle(szFile,songname,FILE_NAME);
SetDlgItemText(hwnd,IDC_EDITMUSICNAME,songname);
//*
MessageBox(hwnd,szFile,TEXT("目录1"),MB_OK);//显示选取文件 的完整路径;
//*/
}
}
break;
//暂停
case IDC_BUTTONPAUSE:
{
//szfile内容不对
GetDlgItemText(hwnd,IDC_EDITMUSICNAME,songname,sizeof(songname));
// wsprintf(cmd,"pause %s",long_path);
MessageBox(hwnd,long_path,TEXT("目录2"),MB_OK);
// mciSendString(cmd,0,0,NULL);
}
break;
default:
break;
}
}
暮色呼如
相关分类