小弟实在是太菜,这代码也简单的不能再简单了:
void CMediaplayerDlg::OnButton2()
{
MCI_OPEN_PARMS open={0};
char str1[100];
POSITION pos=m_list1.GetFirstSelectedItemPosition();
if(pos==NULL)
{
MessageBox("没有选择歌曲","提示",MB_OK);
}
else
{
int nItem=m_list1.GetNextSelectedItem(pos);
CString str=m_list1.GetItemText(nItem,2);
open.lpstrElementName=str;
open.lpstrDeviceType="mpegvideo";
DWORD err;
err=mciSendCommand(0,MCI_OPEN,MCI_OPEN_TYPE|MCI_OPEN_ELEMENT|MCI_WAIT,(DWORD)(LPVOID)&open);
if(err==0)
{
MCI_PLAY_PARMS play;
play.dwFrom=0;
play.dwCallback=NULL;
mciSendCommand(open.wDeviceID,MCI_PLAY,0,(DWORD)&play);
}
else
{
mciGetErrorString(err,(LPSTR)str1,100);
MessageBox(str1);
}
}}
void CMediaplayerDlg::OnButton2()
{
MCI_OPEN_PARMS open={0};
char str1[100];
POSITION pos=m_list1.GetFirstSelectedItemPosition();
if(pos==NULL)
{
MessageBox("没有选择歌曲","提示",MB_OK);
}
else
{
int nItem=m_list1.GetNextSelectedItem(pos);
CString str=m_list1.GetItemText(nItem,2);
open.lpstrElementName=str;
open.lpstrDeviceType="mpegvideo";
DWORD err;
err=mciSendCommand(0,MCI_OPEN,MCI_OPEN_TYPE|MCI_OPEN_ELEMENT|MCI_WAIT,(DWORD)(LPVOID)&open);
if(err==0)
{
MCI_PLAY_PARMS play;
play.dwFrom=0;
play.dwCallback=NULL;
mciSendCommand(open.wDeviceID,MCI_PLAY,0,(DWORD)&play);
}
else
{
mciGetErrorString(err,(LPSTR)str1,100);
MessageBox(str1);
}
}}
解决方案 »
- discuze论坛 formhash读取问题 急,在线等~~
- 如何用TrimRight对CString字符串去空格?
- 求救:Runtime Error!问题(100分)
- 我想在操作系统调用 CreateProcess 运行程序前 hook ,取得一些信息,如何操作?
- 关于两个工程之间的问题。
- ***有没有比StretchBlt()更好的位图放大API,用他效果太差***(自画XP风格的标题栏)
- 请教一个常见问题!(解决问题者给50分!参与者也有分)
- 欢迎大家来谈谈“从一个编程爱好者到一个程序员,再到一个编程高手要走的路”(大散分)
- CWinThread线程结束问题—-销毁线程后结束线程函数
- 请问:如何用vc调用word,在vc对话框中List控件显示指定word文档的目录,点击目录相应位置显示目录被点击处相应内容?请大侠指教。谢谢!
- VS2008 MFC连接SQL数据库
- CScrollView::SetScrollSizes不起作用
//好的是:
mciOpenParms.lpstrDeviceType=(LPSTR)MCI_DEVTYPE_WAVEFORM_AUDIO;
你可以将文件路径名称转为短格式再播放,或者先放到c盘根目录去测试一下,当然文件名也改为8.3格式的
{
MCI_OPEN_PARMS mciOpenParms;
//initialize structure
memset(&mciOpenParms,0,sizeof(MCI_OPEN_PARMS));// mciOpenParms.lpstrDeviceType = (LPCSTR)MCI_DEVTYPE_SEQUENCER;//MIDI类型
// mciOpenParms.lpstrDeviceType = (LPCSTR)MCI_DEVTYPE_WAVEFORM_AUDIO;
//set the file name to be played
mciOpenParms.lpstrElementName=pFileName; //first open the device
DWORD dwResult=mciSendCommand(m_nDeviceID,MCI_OPEN, MCI_OPEN_ELEMENT,(DWORD)(LPVOID)&mciOpenParms); //display error message if failed
if(dwResult)
{
DisplayErrorMsg(dwResult);
}
else //if successful,instruct the device to play the WAV file
{
//save element indentifier
m_nElementID=mciOpenParms.wDeviceID; MCI_PLAY_PARMS mciPlayParms; //set the window that will receive notification message
mciPlayParms.dwCallback=(DWORD)pWnd->m_hWnd; //instruct device to play file
dwResult=mciSendCommand(m_nElementID,MCI_PLAY,MCI_NOTIFY,(DWORD)(LPVOID)&mciPlayParms); //display error and close element if failed
if(dwResult)
{
DisplayErrorMsg(dwResult);
Stop();
}
}
//return result of MCI operation
return dwResult;
}