<pre name="code" class="cpp">首先在创建子线程的时候将窗口的句柄传入到子线程
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)MyThreadProc, GetSafeHwnd(), 0, 0);
然后在你的子线程中发送消息
UINT MyThreadProc( LPVOID pParam )
{
HWND hWnd= (HWND)pParam;
...
SendMessage(hWnd, UM_MSG, ...,...); // 发送自定义的消息到主界面线程,通知它去更新界面控件信息 用宏定义你的消息<span style="font-family: Arial, Helvetica, sans-serif;">M_MSG</span>
return 0;
}
然后到你的类中定义
afx_msg LRESULT OnHandleMsg(WPARAM wParam, LPARAM lParam);// 自定义消息UM_MSG的消息处理函数
然后在你要添加的cpp文件中找到
BEGIN_MESSAGE_MAP(CXXDlg, CDialog)
...
END_MESSAGE_MAP()
添加
ON_MESSAGE(UM_MSG, &CXXDlg::OnHandleMsg)
到他们之间
最后定义你的处理函数
<pre name="code" class="cpp">LRESULT CXXDlg::OnHandleMsg(WPARAM wParam, lParam)
{
...
SetDlgItemText(...);
return 0;
}
如何在mfc中通过线程向主窗口发送数据或者是访问控件
最新推荐文章于 2023-02-09 13:41:12 发布