描述:
我在工作线程中获取到数据后,想调用控件的触发事件的函数,来触发相应的事件。但现在是发送完成后,控件的消息没有任何的反应?这是为什么?如何解决!代码如下:
DWORD ThreadProc(LPVOID lParam)
{
IStream *pStream;
pStream=static_cast<IStream *>(lParam);
CoGetInterfaceAndReleaseStream(pStream,__uuidof(IAgentAccess),(LPVOID *)&pAgent);
while(bOk)
{
pAgent->GetData(&evt);
COPYDATASTRUCT cpd;
cpd.dwData=0;
cpd.cbData=sizeof(evt);
cpd.lpData=(LPVOID)&evt
Beep(1000,10);//有数据的提示音
PostMessage(AfxApp()->m_pMainWnd->GetSafeHwnd(),WM_COPYDATA,NULL,(LPARAM)&cpd);
//发送消息给控件消息,由控件处理
}
return 0;
}
//以下是控件中的WM_COPYDATA消息的对应映身函数
BOOL CAgentManagerCtrl::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
EventData *evt=(EventData *)(pCopyDataStruct->lpData);
Beep(2000,20);
//消息收到后的报警提示 没有收到提示音,消息没有收到
Fire_Event(*evt);//处理
return COleControl::OnCopyData(pWnd, pCopyDataStruct);
}