MFC:線程中更新窗口不能直接調用UpdateData函數


線程中更新窗口不能直接調用UpdateData函數

問題:
在線程中使用UpdateData(FALSE)來更新窗口的內容,結果在Debug版本下面就出現了Assert報錯.

解決方案:
UpdateData(FALSE)語句用SendMessage(WM_UPDATEDATA, FALSE)替代即可.

abc.h文件中:
#define   WM_UPDATEDATA   WM_USER + 5
LRESULT OnUpdateData(WPARAM wParam, LPARAM lParam);

abc.cpp文件中:
//函數映射 :
ON_MESSAGE(WM_UPDATEDATA, OnUpdateData)
//定義新函數:
LRESULT CProtectPage::OnUpdateData(WPARAM wParam, LPARAM lParam)
{
 UpdateData(wParam);
 return 0;
}
//傳消息給窗口:
SendMessage(WM_UPDATEDATA, FALSE)

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章