与窗口消息不同,线程消息用ON_THREAD_MESSAGE来映射,发送消息用PostThreadMessage函数。 详述如下: 1. 声明一个派生自CWinThread的类,例如CMyThread类。 在类的声明中(.h头文件)加入消息处理函数 afx_msg void AFX_MSG_CALL OnReset(WPARAM wParam, LPARAM lParam); // 2. 在类的实现中(cpp文件) 添加消息映射宏 BEGIN_MESSAGE_MAP(CMyThread, CWinThread) ON_THREAD_MESSAGE(DM_RESET, &CMyThread::OnReset) // DM_RESET为自定义的消息,此处假设为WM_USER+100 END_MESSAGE_MAP() 3. 实现消息处理函数体 void AFX_MSG_CALL CMyThread::OnReset(WPARAM wParam, LPARAM lParam) { // 加入自己的实现代码 } 4. 向线程对象发送消息,用CWinThread类的PostThreadMessage函数。 假设有一个CMyThread类的对象为m_thread; m_thread.PostThreadMessage(DM_RESET,0,0);
如何给线程发送消息
最新推荐文章于 2023-03-10 19:33:43 发布