关于多文档界面,谁帮我一下

rocenting 2006-03-21 10:32:38
我现在做一个界面,类似于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我才刚学两个星期,真郁闷!

















...全文
86 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

15,976

社区成员

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

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