15,472
社区成员
发帖
与我相关
我的任务
分享
//全局变量
HWND hMCI = NULL;
int slen = 0;
int spos = 0;
//工具栏单击消息启动的一个线程。
void CMainFrame::OnManageUser()
{
if(!ShowObj.ShowWindow(SW_SHOW))
{
pThread = AfxBeginThread((AFX_THREADPROC)MyThreadProc,GetSafeHwnd());
}
}
UINT WINAPI MyThreadProc(LPVOID pParam)//线程函数启动mp3,倘若,下面这段添加到MainFrame类的OnCreate()函数里,定时器 spos = MCIWndGetPosition(hMCI2);可以判断出值的。
感觉与线程同步没关系,是Mp3类的函数不能跨线程使用吗???调试hMCI2句柄的值都是一样的。
{
hMCI = MCIWndCreate(NULL,NULL,WS_POPUP|MCIWNDF_NOPLAYBAR|MCIWNDF_NOMENU,NULL);
MCIWndOpen(hMCI,"res//back.mp3",0);
hMCI2 = hMCI;
slen = MCIWndGetLength(hMCI);
if(hMCI)
MCIWndPlay(hMCI);
}
void CMainFrame::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
spos = MCIWndGetPosition(hMCI2);
if(spos>=slen)
MCIWndPlay(hMCI2);
CFrameWnd::OnTimer(nIDEvent);
}