在线程中更新CStatusBar显示出现异常

同桌老王 2005-09-26 02:08:49
作为测试,先在主界面上,点击了某个按钮之后,在状态栏上显示显示一下消息,SetPaneText。
没有任何问题。
然后响应View的某个消息,启动一个线程,用View的this指针作为线程的参数。在线程里面我用AfxGetMainWnd得到状态栏的指针,调用SetPaneText显示一些信息,结果出现异常。
...全文
123 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2005-09-26
  • 打赏
  • 举报
回复
“用View的this指针作为线程的参数”

完全可以用主窗口的句柄作为指针,然后向该句柄发送自定义消息,主窗口响应该消息刷新状态栏。
phoenix96_2000 2005-09-26
  • 打赏
  • 举报
回复
但是对那些实现为内联转发SendMessage的函数是否安全呢?
goodboyws 2005-09-26
  • 打赏
  • 举报
回复
不要用AfxGetMainWnd,这个获取的是当前线程主窗口,用AFxGetApp()->m_pMainWnd
DentistryDoctor 2005-09-26
  • 打赏
  • 举报
回复
这是必然的。因为MFC的CWnd类不是线程安全的。

应该向主线程发送,由主线程来负责更新。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧