事先建立多文档模板,新建NewMDIFrame

void CMainFrame::NewMDIFrame(CString strTitle)
{
if(strTitle == _T("梯形图"))
{
g_PrjMg.SetIsMain(true);
if(!ActiveMDI(g_PrjMg.m_path+_T("-")+_T("梯形图 - ")+ g_PrjMg.GetPrjName(),3))//(!ActiveMDI(_T("梯形图 - ")+ g_PrjMg.GetPrjName(), 3))//&& !ActiveMDI(_T("梯形图"), 3))
{
POSITION P = AfxGetApp()->GetFirstDocTemplatePosition();
if(P!=NULL)
{
AfxGetApp()->GetNextDocTemplate(P); //paramview
AfxGetApp()->GetNextDocTemplate(P); //formview
CDocTemplate * m_MyDT = AfxGetApp()->GetNextDocTemplate(P);//plcview;

CPlcDoc* pDoc =(CPlcDoc*) m_MyDT->CreateNewDocument();
CFrameWnd *pFrame = m_MyDT->CreateNewFrame(pDoc, NULL);
pDoc->SetTitle(g_PrjMg.m_path+_T("-")+_T("梯形图 - ")+ g_PrjMg.GetPrjName());

pFrame->ShowWindow(SW_MAXIMIZE);
m_MyDT->InitialUpdateFrame(pFrame,pDoc,TRUE);//显示新窗口
CPlcView *pView=GetPlcView();//第一次出现时重新计算视图大小,有可能有注释显示灯 滚动条问题
pView->ResizeView();

}
}

}
else if(strTitle == _T("指令表"))
{
g_PrjMg.SetIsMain(false);
if(!ActiveMDI(g_PrjMg.m_path+_T("-")_T("指令表 - ")+ g_PrjMg.GetPrjName(), 4))//(!ActiveMDI(_T("指令表 - ")+ g_PrjMg.GetPrjName(), 4))
{
POSITION P = AfxGetApp()->GetFirstDocTemplatePosition();
if(P!=NULL)
{
AfxGetApp()->GetNextDocTemplate(P); //paramview
AfxGetApp()->GetNextDocTemplate(P); //formview
AfxGetApp()->GetNextDocTemplate(P); //plcview
CDocTemplate * m_MyDT = AfxGetApp()->GetNextDocTemplate(P);//cmdview;

CPlcDoc* pDoc =(CPlcDoc*) m_MyDT->CreateNewDocument();
CFrameWnd *pFrame = m_MyDT->CreateNewFrame(pDoc, NULL);
pDoc->SetTitle(g_PrjMg.m_path+_T("-")+_T("指令表 - ")+ g_PrjMg.GetPrjName());
pFrame->ShowWindow(SW_MAXIMIZE);
m_MyDT->InitialUpdateFrame(pFrame,pDoc);//显示新窗口

}
}

}

else if(strTitle == _T("COMMENT")) ////创建或激活注释窗口
{
if(!ActiveMDI(g_PrjMg.m_path+_T("-")+_T("COMMENT - ")+ g_PrjMg.GetPrjName(), 2))//(!ActiveMDI(_T("COMMENT - ")+ g_PrjMg.GetPrjName(), 2))
{
POSITION P = AfxGetApp()->GetFirstDocTemplatePosition();
if(P!=NULL)
{
AfxGetApp()->GetNextDocTemplate(P); //paramview
CDocTemplate * m_MyDT = AfxGetApp()->GetNextDocTemplate(P);//formview;

CPlcDoc* pDoc =(CPlcDoc*) m_MyDT->CreateNewDocument();
CFrameWnd *pFrame = m_MyDT->CreateNewFrame(pDoc, NULL);
pDoc->SetTitle(g_PrjMg.m_path+_T("-")+_T("COMMENT - ")+ g_PrjMg.GetPrjName());
pFrame->ShowWindow(SW_MAXIMIZE);
m_MyDT->InitialUpdateFrame(pFrame,pDoc);//显示新窗口

}
}
}
else if(strTitle == _T("PLC参数"))
{
if(!ActiveMDI(g_PrjMg.m_path+_T("-")+_T("PLC参数 - ")+ g_PrjMg.GetPrjName(), 1))
{
POSITION P = AfxGetApp()->GetFirstDocTemplatePosition();
if(P!=NULL)
{
CDocTemplate * m_MyDT = AfxGetApp()->GetNextDocTemplate(P);//paramview;

CPlcDoc* pDoc =(CPlcDoc*) m_MyDT->CreateNewDocument();
CFrameWnd *pFrame = m_MyDT->CreateNewFrame(pDoc, NULL);
pDoc->SetTitle(g_PrjMg.m_path+_T("-")+_T("PLC参数 - ")+ g_PrjMg.GetPrjName());
pFrame->ShowWindow(SW_MAXIMIZE);
m_MyDT->InitialUpdateFrame(pFrame,pDoc);//显示新窗口

}
}

}
else if(strTitle == _T("批量软元件监视"))
{
if(!ActiveMDI(g_PrjMg.m_path+_T("-")+_T("批量软元件监视 - ")+ g_PrjMg.GetPrjName(), 5))
{
POSITION P = AfxGetApp()->GetFirstDocTemplatePosition();
if(P!=NULL)
{
AfxGetApp()->GetNextDocTemplate(P); //paramview
AfxGetApp()->GetNextDocTemplate(P); //formview
AfxGetApp()->GetNextDocTemplate(P); //plcview
AfxGetApp()->GetNextDocTemplate(P); //cmdview
CDocTemplate * m_MyDT = AfxGetApp()->GetNextDocTemplate(P);//CElementBatchView;

CPlcDoc* pDoc =(CPlcDoc*) m_MyDT->CreateNewDocument();
CFrameWnd *pFrame = m_MyDT->CreateNewFrame(pDoc, NULL);
pDoc->SetTitle(g_PrjMg.m_path+_T("-")+_T("批量软元件监视 - ")+ g_PrjMg.GetPrjName());
pFrame->ShowWindow(SW_MAXIMIZE);
m_MyDT->InitialUpdateFrame(pFrame,pDoc);//显示新窗口

}
}

}
else if(strTitle == _T("指定软元件监视"))
{
if(!ActiveMDI(g_PrjMg.m_path+_T("-")+_T("指定软元件监视 - ")+ g_PrjMg.GetPrjName(), 6))
{
POSITION P = AfxGetApp()->GetFirstDocTemplatePosition();
if(P!=NULL)
{
AfxGetApp()->GetNextDocTemplate(P); //paramview
AfxGetApp()->GetNextDocTemplate(P); //formview
AfxGetApp()->GetNextDocTemplate(P); //plcview
AfxGetApp()->GetNextDocTemplate(P); //cmdview
AfxGetApp()->GetNextDocTemplate(P); //CElementBatchView
CDocTemplate * m_MyDT = AfxGetApp()->GetNextDocTemplate(P);//CElementLandMonitorView

CPlcDoc* pDoc =(CPlcDoc*) m_MyDT->CreateNewDocument();
CFrameWnd *pFrame = m_MyDT->CreateNewFrame(pDoc, NULL);
pDoc->SetTitle(g_PrjMg.m_path+_T("-")+_T("指定软元件监视 - ")+ g_PrjMg.GetPrjName());
pFrame->ShowWindow(SW_MAXIMIZE);
m_MyDT->InitialUpdateFrame(pFrame,pDoc);//显示新窗口

}
}

}
Invalidate();
}

posted @ 2019-09-10 15:17  石首桃花山  阅读(186)  评论(0编辑  收藏  举报