jiqiong9410 2017-01-30 11:54 采纳率: 0%
浏览 2015

mfc音乐播放器mcisendstring里面的,怎么实现顺序播放歌曲?

在musicdlg.h里面
protected:
afx_msg LRESULT OnMCINotify(WPARAM wParam, LPARAM lParam);
在musicdlg.cpp里面
BEGIN_MESSAGE_MAP(CLrsfMusicDlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_minbtn, &CLrsfMusicDlg::OnBnClickedminbtn)
ON_BN_CLICKED(IDC_exitbtn, &CLrsfMusicDlg::OnBnClickedexitbtn)
ON_WM_NCHITTEST()
ON_BN_CLICKED(IDC_searchbtn, &CLrsfMusicDlg::OnBnClickedsearchbtn)
ON_WM_CTLCOLOR()
ON_BN_CLICKED(IDC_playbtn, &CLrsfMusicDlg::OnBnClickedplaybtn)
ON_BN_CLICKED(IDC_stopbtn, &CLrsfMusicDlg::OnBnClickedstopbtn)
ON_BN_CLICKED(IDC_lastbtn, &CLrsfMusicDlg::OnBnClickedlastbtn)
ON_BN_CLICKED(IDC_nextbtn, &CLrsfMusicDlg::OnBnClickednextbtn)
ON_LBN_DBLCLK(IDC_musiclist, &CLrsfMusicDlg::OnDblclkMusiclist)
ON_WM_TIMER()
ON_MESSAGE(MM_MCINOTIFY, OnMCINotify) //传递消息
END_MESSAGE_MAP()

mcisendstring里面先open了,然后play
play ="play.....+notify";
hwnd=this->m_hWnd;
mciSendString(play, NULL, 0, hwnd);
响应函数

LRESULT CLrsfMusicDlg::OnMCINotify(WPARAM wParam, LPARAM lParam)
{
/*if (MCI_NOTIFY_SUCCESSFUL == wParam)
{
MessageBox(L"播放完毕",L"提示");
}*/
//MCI_NOTIFY_SUCCESSFUL == wParam
MessageBox(L"播放完毕", L"提示");
return FALSE;
}

可就是不弹出消息框啊!
不懂mfc消息传递机制,是哪里写错了

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-01-30 15:51
    关注

    mcisendstring是异步的,即调用后就返回了,而不是播放后返回。你可以用windowsmediaplayer控件,支持playlist

    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配