UpdateData在子线程中出错的解决方法ZZ

来源:互联网 发布:怎么在淘宝上找批发店 编辑:程序博客网 时间:2024/06/01 10:16

在对话框类中创建的线程中,不能直接用UpdateData来更新数值。解决的办法,应该自己定义一个消息,将UpdateData(FALSE)替换为SendMessage(WM_UPDATEDATA, FALSE)就可以了。具体的做法如下:

首先,定义消息和回调函数

12
#define  WM_UPDATEDATA  WM_USER + 1LRESULT OnUpdateData(WPARAM wParam, LPARAM lParam);

加入函数映射

1
ON_MESSAGE(WM_UPDATEDATA, OnUpdateData)

最后,实现回调函数

12345
LRESULT CXXXDlg::OnUpdateData(WPARAM wParam, LPARAM lParam){    UpdateData(wParam);    return 0;}