mfc普通函数怎么给线程发送消息
在MFC中,可以使用PostMessage函数将消息发送给窗口的消息队列。以下是一个示例代码:
- 在MFC窗口类中定义一个普通函数,用于处理消息:
// MyMFCWindow.h
class CMyMFCWindow : public CWnd
{
public:
afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
//...
};
// MyMFCWindow.cpp
BEGIN_MESSAGE_MAP(CMyMFCWindow, CWnd)
ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage)
//...
END_MESSAGE_MAP()
LRESULT CMyMFCWindow::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
// 在这里处理消息
//...
return 0;
}
- 创建一个线程,并在线程函数中使用PostMessage函数发送消息:
UINT MyThreadFunction(LPVOID pParam)
{
CMyMFCWindow* pWnd = (CMyMFCWindow*)pParam;
// 发送消息
pWnd->PostMessage(WM_MY_MESSAGE, wParam, lParam);
return 0;
}
- 在MFC窗口类的代码中创建线程并调用线程函数:
// MyMFCWindow.cpp
void CMyMFCWindow::SomeFunction()
{
// 创建线程
AfxBeginThread(MyThreadFunction, this);
}
这样,在线程函数中调用PostMessage函数即可向MFC窗口发送消息。注意,要确保线程函数中的pWnd指针有效,可以在创建线程时将this指针传递给线程函数
原文地址: http://www.cveoy.top/t/topic/iYBm 著作权归作者所有。请勿转载和采集!