为什么在线程中调用框架上的函数有问题???编译却通过!!!!!!!!!!!!

C员外 2004-01-02 04:31:39
在框架中的函数
void CMainFrame::OnStop()
{
CLeftView* pLeftView;
pLeftView=(CLeftView*)(m_wndSplitter.GetPane(0,0));
CMonDoc* pDoc;
pDoc = pLeftView->GetDocument();
......
}
为什么由线程调用能编译却报错?????????
...全文
72 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dw1977 2004-01-07
  • 打赏
  • 举报
回复
调用他它的最好方法可以自定义消息#define WM_STOP WM_USER+1
WM_STOP的消息相应函数中调用,把窗口的句柄hWnd做为参数传入线程,在线程中::SendMessage(hWnd,WM_STOP,0,0)
lu_zi 2004-01-06
  • 打赏
  • 举报
回复
不会吧,
C员外 2004-01-06
  • 打赏
  • 举报
回复
唉,终于知道了,Cwnd *在不能用在线程里
C员外 2004-01-06
  • 打赏
  • 举报
回复
用自定义消息解决问题了.
C员外 2004-01-05
  • 打赏
  • 举报
回复
俺的线程是全局的,它调用void CMainFrame::OnStop()函数编译没有问题,如果不包含 CLeftView* pLeftView;
pLeftView=(CLeftView*)(m_wndSplitter.GetPane(0,0));
CMonDoc* pDoc;
pDoc = pLeftView->GetDocument();
也没有问题,是不是什么线程安全问题,不太了解.望高人解答
jimsleon 2004-01-03
  • 打赏
  • 举报
回复
你起的是工作线程吧?工作线程没有消息循环
victor_cui 2004-01-02
  • 打赏
  • 举报
回复
做成static类型的函数才可以
victor_cui 2004-01-02
  • 打赏
  • 举报
回复
一种可能你这个MainFrame已经被释放,还有就是这个函数不是全局的

15,471

社区成员

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

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