线程中更新窗口不能直接调用UpdateData函数 的解决办法

本文介绍了一种通过自定义消息实现界面更新的方法。具体步骤包括:定义自定义消息、添加消息映射、定义消息处理函数及在线程中发送消息。这种方法避免了直接在线程中操作界面,有助于提高程序的稳定性和响应速度。
LRESULT OnUpdateData(WPARAM wParam, LPARAM lParam);加到你的头文件中去


 


 


tonygesong回复于15日21点31分 


1.自定义消息: 
#define WM_UPDATEDATA  10000+1  // 更新界面 


2.添加消息映射: 
ON_MESSAGE(WM_UPDATEDATA, OnUpdateData) 


3.定义消息处理函数: 
LRESULT CDlg::OnUpdateData(WPARAM wParam, LPARAM lParam) 

UpdateData(wParam); 
return 0; 



4.在线程中发送消息: 
    首先获取主窗口的指针 


    CDlg* pMain = (CDlg*)param; 


    SendMessage(pMain->m_hWnd, WM_UPDATEDATA, FALSE, FALSE); 


 


 


xiaozhu123回复于15日21点43分 


不要在线程中操作界面,可以向窗口发消息,用PostMessage或是SendMessage都可以,发自定义消息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值