为什么UI线程中执行pFrame->GetActiveDocument()语句会出错?

steven20031117 2004-05-03 11:07:16
我的目的是希望再UI线程中调用主线程的一个函数。代码如下:
CMainFrame* pFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;
CHjysxtDoc* pDoc = (CHjysxtDoc*)pFrame->GetActiveDocument();
switch(pDoc->AddMubiao(mubiao))
。。。
但执行时(CHjysxtDoc*)pFrame->GetActiveDocument();会报错。我怎样才能在我的UI线程中调用CHjysxtDoc中的AddMubiao()函数?
希望各位高手能给予帮助。
...全文
47 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
steven20031117 2004-05-03
多谢两位。
  • 打赏
  • 举报
回复
aspnetwuxueyou 2004-05-03
CWnd class是线程相关的,也就是说在不同线程中值是不同的。
所以你得到CMainFrame的值就不对,不信你assert一下
  • 打赏
  • 举报
回复
蒋晟 2004-05-03
简单的说,不行。你需要另外想办法,例如在线程类中声明一个指针,AfxBeginThread的时候以暂停方式启动线程,设置指针为文档指针之后继续线程的运行。
  • 打赏
  • 举报
回复
相关推荐
发帖
进程/线程/DLL
加入

1.5w+

社区成员

VC/MFC 进程/线程/DLL
申请成为版主
帖子事件
创建了帖子
2004-05-03 11:07
社区公告
暂无公告