在基于CWinThread的类CMyThread中,我这样定义了一个消息:
#define WM_MYHELLO (WM_USER + 10 ) afx_msg LONG myHello(UINT , LONG ); ON_THREAD_MESSAGE(WM_MYHELLO, myHello) LONG CMyThread::myHello(UINT wParam, LONG iParam)
{
AfxMessageBox("hello");
return 0;
}然后在外部利用发消息,
CThreadDemoApp * MainApp = (CThreadDemoApp *)AfxGetApp();
MainApp->PostThreadMessage(WM_MYHELLO,0,0);
为什么运行不到myHello函数里面呢?
#define WM_MYHELLO (WM_USER + 10 ) afx_msg LONG myHello(UINT , LONG ); ON_THREAD_MESSAGE(WM_MYHELLO, myHello) LONG CMyThread::myHello(UINT wParam, LONG iParam)
{
AfxMessageBox("hello");
return 0;
}然后在外部利用发消息,
CThreadDemoApp * MainApp = (CThreadDemoApp *)AfxGetApp();
MainApp->PostThreadMessage(WM_MYHELLO,0,0);
为什么运行不到myHello函数里面呢?
m_pThr = (CMyThread *)AfxBeginThread(prt);我用上面的AfxBeginThread ,如果new放在哪里呢?
另外一个,MainApp->PostThreadMessage(WM_MYHELLO,0,0);有问题:
线程之间的通讯用这个函数:
PostThreadMessage(DWORD idThread,UINT Msg,WPARAM wParam,LPARAM lParam)
MSDN上有它的用法
MainApp->PostThreadMessage(WM_MYHELLO,0,0);不对,应该是
CMyThread *pThread;
pThread=AfxBeginThread(.......)
pThread->PostThreadMessage(WM_MYHELLO,0,0);