刚接触MFC,不知道为什么在线程中更改画面显示总是报错。请教高手后,知道线程中不能调用画面相关的函数,
线程中只能处理和业务相关的内容。可以在子线程中发送系统消息或者是自定义的消息,然后在主线程中刷新界
面。
1、在消息映射表中添加红色部分
BEGIN_MESSAGE_MAP(CAreaTicketDlg, CDialog)
#if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP)
ON_WM_SIZE()
#endif
ON_MESSAGE(WM_USER_UPDATESURPLUS, UpdateSurplus)
END_MESSAGE_MAP()
2、在头文件中添加
#define WM_USER_UPDATESURPLUS (WM_USER + 103)
3、实现消息的响应函数
LRESULT CAreaTicketDlg::UpdateSurplus(WPARAM wParam, LPARAM lParam)
{
//添加自己需要的代码
return 0;
}
4、在合适的地方发送消息
::PostMessage(pThis->m_hWnd, WM_USER_UPDATESURPLUS, 0, 0);
上面内容是我在项目中用到的,仅仅是个例子而已。作为备忘。