MFC单文档应用程序子线程向主线程发送消息调用函数

本文介绍如何在MFC应用程序中实现跨线程的消息传递,以更新主线程的界面。通过在Resource.h中定义自定义消息,在View类中添加响应函数,并在子线程中使用PostMessage发送消息,可以安全地进行界面更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 在Resource.h文件中添加代码:
#define WM_USER_MSG (WM_USER+2)
  • 在View类中添加函数:
LRESULT CMCU_systemView::OnMsg(WPARAM wp, LPARAM lp)
{
	CMainFrame* pFrame = (CMainFrame *)AfxGetMainWnd();
	pFrame->m_wndStatusBar.SetPaneText(1, "完成!!!", TRUE);
	return 1L;
}
  • 加入自定义消息映射:
ON_MESSAGE(WM_USER_MSG, &CMCU_systemView::OnMsg)
  • 子线程中发送消息到主线程:
CMCU_systemView *para = (CMCU_systemView *)p;//p是线程参数this
::PostMessage(para->GetSafeHwnd(), WM_USER_MSG, WPARAM(0), LPARAM(0));

参考文献

MFC 在线程中通过PostMessage更新界面主线程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值