切分窗口通信与线程冲突
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: 在此添加专用代码和/或调用基类
m_wndSplitter.CreateStatic(this,2,2);
int Screen_Width = GetSystemMetrics(SM_CXSCREEN);
int Screen_Height = GetSystemMetrics(SM_CYSCREEN);
CSize panesize1(Screen_Width,72*Screen_Height/100);
CSize panesize2(Screen_Width,28*Screen_Height/100);
m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CSeismic_CudaView), panesize1,pContext);
m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CSliceViw), panesize1,pContext);
m_wndSplitter.CreateView(1,0,RUNTIME_CLASS(CControlView), panesize2,pContext);
m_wndSplitter.CreateView(1,1,RUNTIME_CLASS(CSliceControl), panesize2,pContext);
m_wndSplitter.HideSplitter();
return TRUE;
}
CView *CSeismic_CudaView::GetVolumeControlView()
{
CSeismic_CudaApp *pApp = (CSeismic_CudaApp *)AfxGetApp();
CMainFrame *pFrame = (CMainFrame *)pApp->m_pMainWnd;
CFormView *pView = (CFormView *)pFrame->m_wndSplitter.GetPane(1,0);
return pView;
}
我新开了个线程实现CSeismic_CudaView视图的显示,并与CControlView建立通信,用CControlView控制CSeismic_CudaView的显示, 在线程函数里调用了GetVolumeControlView() ,在执行到CFormView *pView = (CFormView *)pFrame->m_wndSplitter.GetPane(1,0);就中断了!在网上搜了好几天了,实在找不到好的解决方法!who can help me?