本帖最后由 gxp1032901 于 2012-08-16 11:40:35 编辑

解决方案 »

  1.   

    给个小例子自己看吧MciSendString支持很多格式,而且Command功能非常强大,MSDN光介绍这个命令就10几个页面。MCI小例子
      

  2.   

    mciSendCommand的:
    void CPlayerDlg::OnOpen() 
    {
    // TODO: Add your control notification handler code here
    CString str1,str2;
    CFileDialog CFileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "所有文件 (*.*)|*.*|歌曲文件 (*.mp3)|.mp3||",NULL);
    if(CFileDlg.DoModal()==IDOK)
    { str1=CFileDlg.GetPathName();
      str2=CFileDlg.GetFileTitle();
      lpName=str2;
      lpPath=str1;
      //MessageBox(lpName,"歌曲名字",MB_OK);
    }
    else MessageBox("出错了!","错误:",MB_ICONSTOP);
    MCI_OPEN_PARMS mciopenparms; 
    MCI_PLAY_PARMS mciplayparms; 
    mciopenparms.lpstrElementName=lpPath; 
    mciopenparms.lpstrDeviceType=NULL; 
    MCIERROR mcierror=mciSendCommand(NULL,MCI_OPEN,MCI_DEVTYPE_WAVEFORM_AUDIO,(DWORD)(LPVOID)&mciopenparms); 
    // ID=mciopenparms.wDeviceID; 
    if(mcierror==0) 

    mciSendCommand(mciopenparms.wDeviceID,MCI_PLAY,MCI_NOTIFY,(DWORD)(LPVOID)&mciplayparms); 
    } }