解决问题马上结贴

解决方案 »

  1.   

    要#include "mmsystem.h" 
       先定義全局變量﹕
        UINT wDeviceID;    
        MCI_OPEN_PARMS mciOpenParms;
        MCI_PLAY_PARMS mciPlayParms;
        MCI_STATUS_PARMS mciStatusParms;
        CString path="c:\\test.mid";    然后可以寫以下代碼循環播放﹕
        mciOpenParms.lpstrDeviceType = "sequencer";
        mciOpenParms.lpstrElementName = path;
    mciSendCommand(NULL, MCI_OPEN,
        MCI_OPEN_TYPE | MCI_OPEN_ELEMENT,
        (DWORD)(LPVOID) &mciOpenParms);
        wDeviceID = mciOpenParms.wDeviceID;
        mciStatusParms.dwItem = MCI_SEQ_STATUS_PORT;
    mciSendCommand(wDeviceID, MCI_STATUS,
            MCI_STATUS_ITEM, (DWORD)(LPVOID) &mciStatusParms);
    mciPlayParms.dwCallback = (DWORD) this->GetSafeHwnd();
        mciSendCommand(wDeviceID, MCI_PLAY, MCI_NOTIFY,
            (DWORD)(LPVOID) &mciPlayParms);
      

  2.   

    ActiveMovie控件,在菜单中依次选择"project- >Add To Project- >Components And Controls",结合定时器应该可以满足你的要求,循环播放。
      

  3.   

    我用这个方法播放MIDI
    http://dev.csdn.net/article/1/1684.shtm
    但无法循环播放。没有这个消息
    case MM_MCINOTIFY:    midi.Replay();    break;
      

  4.   

    http://community.csdn.net/Expert/topic/2846/2846937.xml?temp=.385586
      

  5.   

    mciPlayParms.dwCallback = (DWORD) hwnd;hwnd 是正确的吗?
      

  6.   

    主要是收不到  MM_MCINOTIFY问题解决马上结贴。解决不了下周再结贴
      

  7.   

    好了 非常感谢 a_melon(瓜)的提醒。