void CMediaPlayerDlg::OnTimer(UINT_PTR nIDEvent)
{
play *p = new play();
int index = p->m_Player2.get_playState; //播放状态
if (index == 1)
{
if (((CButton *)GetDlgItem(IDC_RADIO1))->GetCheck())  //如果顺序播放
{
CString str;
int index = m_list.GetCurSel() + 1;
if (index >= m_list.GetCount()) index = 0;  //播放完最后一个,自动播放第一个
m_list.GetText(index, str);
p->m_Player2.put_URL(str);
m_list.SetCurSel(index);  //自动设置光标
}  
if(((CButton *)GetDlgItem(IDC_RADIO2))->GetCheck()) //随机播放
{
srand(time(0));
m_list.SetCurSel(rand() % m_list.GetCount());
m_list.GetText(m_list.GetCurSel(),PathName);
p->m_Player2.put_URL(PathName);
}
if (((CButton *)GetDlgItem(IDC_RADIO3))->GetCheck()) CString str;
m_list.GetText(m_list.GetCurSel(), str);
p->m_Player2.put_URL(PathName);

CDialogEx::OnTimer(nIDEvent);
delete p;
}因为点击播放按钮要弹出一个新的窗口播放视频,所以新创了一个对话框,并且媒体播放器控件的类的对象是在那里面定义的。
这是一个实现顺序播放随机播放的函数,但编译时总是出现断言,求大神帮忙下面是新对话框类
class play : public CDialogEx
{
DECLARE_DYNAMIC(play)public:
play(CWnd* pParent = NULL);   // 标准构造函数
virtual ~play();// 对话框数据
enum { IDD = IDD_PLAY };protected:
virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持 DECLARE_MESSAGE_MAP()
public:
CWMPPlayer4 m_Player2;
};