//创建线程的时候,可以这样
AfxBeginThreadProc(MyThreadProc, (LPVOID)GetSafeHwnd());
//在你的线程函数中
UINT MyThreadProc( LPVOID pParam )
{
HWND hWnd= (HWND)pParam;
...
SendMessage(hWnd, UM_MSG, ...,...); // 发送自定义的消息到主界面线程,通知它去更新界面控件信息
return 0;
}
afx_msg LRESULT OnHandleMsg(WPARAM wParam, LPARAM lParam);// 自定义消息UM_MSG的消息处理函数
BEGIN_MESSAGE_MAP(CXXDlg, CDialog)
...
ON_MESSAGE(UM_MSG, &CXXDlg::OnHandleMsg)
END_MESSAGE_MAP()
LRESULT CXXDlg::OnHandleMsg(WPARAM wParam, lParam)
{
...
SetDlgItemText(...);
return 0;
}
MFC中, 子线程怎样访问控件
最新推荐文章于 2022-11-29 10:38:38 发布
本文介绍了一种在Windows应用程序中实现跨线程更新UI的方法。通过使用AfxBeginThreadProc启动新线程,并在该线程中通过发送自定义消息UM_MSG到主线程的方式,实现了非UI线程对UI元素的更新操作。
2799

被折叠的 条评论
为什么被折叠?



