事先創建多文檔模板,新建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());orm

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();
}cmd

相關文章
相關標籤/搜索