新增线程,更新状态栏时,崩溃问题?

honesthgx 2007-07-15 05:40:21
我在一对话框(CDlg1)下面增加状态栏,CStatusBar w_wndStatusBar
但,在一新增加的线程中,调用其它方法更新状态栏时,程序运行崩溃
例如,在新线程中,更新状态栏内容代码:
UINT thread(LPVOID pParam){
CDlg1* pdlg= (CDlg1*)pParam;
pdlg->w_wndStatusBar.SetPaneText(0, ID_INDIRTOR_TIME, "newtime");
}

我不知道为什么,在主程序中更新状态栏都可以,而在新增加的线程中,却会失败崩溃???

请大哥和高手,有经验的指点分析一下!!

跟帖和QQ672441169(注明VC)讨论都可以!!

另,希望结识熟悉VC编程的兄弟(加我QQ,或留下你们的MSN或其它联系方式也可),相互学习,讨论技术问题,有时遇到问题没有讨论,查资料也无法,好郁闷啊!!
...全文
261 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
krfstudio 2007-07-19
  • 打赏
  • 举报
回复
至于发什么消息就你自己决定了,自己定义一个消息也可以,只要不和其他消息有冲突就 OK。
honesthgx 2007-07-18
  • 打赏
  • 举报
回复
谢谢大哥的指点,但我要发什么消息呢?自己定义一个消息和响应吗?
能不能举例说明一下
krfstudio 2007-07-18
  • 打赏
  • 举报
回复
这样做是很不安全的,在 Windows 里所有的窗口都是和某个线程绑定在一起的,所以 MFC 里面的 CWnd 对象也是和线程绑定在一起的,MFC 里面也用到了很多线程局部变量,像你这样在新线程通过指针直接调用主线程的 CWnd 对象出问题也就很自然了。正确的方法应该是向主线程发送一个消息,由主线程来更新状态栏。
honesthgx 2007-07-17
  • 打赏
  • 举报
回复
晕倒,没有知道啊,高手啊,请分析一下吧

15,471

社区成员

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

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