关于多文档界面,谁帮我一下
我现在做一个界面,类似于VC编译器的界面,左边是tap,有三个,分别里面有CTreeCtrl,右边就是Mainframe的客户区,就是显示文档的窗口,下边是用CCtrolBar封装的CListCtrl,
要求点击左边是树项目,能根据树项目本身title建立新文档,我建立有三个文档模版,VIEW都是继承CForm类,分别对应与三个不同的业务,点击时候,如果根据文档的title判断已经建立的文档,则将其激活,没有建立的则建立(已经实现),但根据title不能激活已经建立的document/view
void CMainFrame::changedTree(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
for(int i = 0; i<=m_enCode.count; i++)
{
if(m_enCode.encodeNb[i].name == m_wndTree1.GetItemText(pNMTreeView->itemNew.hItem))
{
if(!m_enCode.encodeNb[i].isCreate)
{
m_enCode.cPosition = i;
AfxGetApp()->OpenDocumentFile(NULL);
m_enCode.encodeNb[i].isCreate = TRUE;
}
else
{
POSITION pos = ((CPBIApp*)AfxGetApp())->pDocTemplate1->GetFirstDocPosition();
while (pos != NULL)
{
CPBIDoc* pDoc =(CPBIDoc*)((CPBIApp*)AfxGetApp())->pDocTemplate1->GetNextDoc(pos);
if(pDoc->GetTitle() == m_wndTree1.GetItemText(pNMTreeView->itemNew.hItem))
{
// CString l;
// l.Format("%s",pDoc->GetTitle());
// AfxMessageBox(l);
POSITION pos1 = pDoc->GetFirstViewPosition();
if(pos != NULL)
{
try
{
CView* pView = pDoc->GetNextView(pos1);
//if(pView != NULL)
CMDIChildWnd* childWnd = (CMDIChildWnd*)((CFrameWnd*)AfxGetApp()->m_pMainWnd)->GetActiveFrame();
// CView* pView1 = childWnd->GetActiveView();
childWnd->SetActiveView((CView*)pView);
//if(!pView->IsKindOf(RUNTIME_CLASS( CPBIView)))
//SetActiveView(pView);
RecalcLayout();
}
catch (CFileException* e)
{
e->ReportError();
}
}
break;
}
}
}
break;
}
else
{
continue;
}
}
*pResult = 0;
}
执行childWnd->SetActiveView((CView*)pView);
就有异常 faint
各位前辈,谁能给点建议
VC/MFC我才刚学两个星期,真郁闷!