精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
界面之间的切换,比如对话框之间切换和视图之间的切换,是常见的处理技术。在A界面准备好的数据,要提交给B界面进行后续处理,这是经常发生的事情。所以说掌握这个技术比单纯写个单一界面,更有实际意义。这个技术的实现放到复杂的MFC文档视图环境下以MDI形式来实现,就更难了,需要掌握主框架指针、子框架指针、子框架创建和销毁等等要点,这是初学MFC的朋友实现不了的。通过这个例子的学习,就能掌握此项技能。
void CAuditingCertView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if(nIDEvent!=2) return;
CString str1;
if(i==0)
{
KillTimer(2);
i=10;
m_List.DeleteItem(m_select);
m_select=-1;
((CRaChildFrame*)GetParentFrame( ))->Msg("操作成功,证书审核已经通过!");
CString strOper,timebegin;
SYSTEMTIME tm;
GetLocalTime(&tm);
timebegin.Format(_T(" %d年-%d月-%d日 %d:%d:%d"), tm.wYear,tm.wMonth,tm.wDay,tm.wHour,tm.wMinute,tm.wSecond);
strOper=timebegin+"审核通过了证书"+"内部序号为"+m_num;
str[35]="2";//"内部表示"
UpdateData();
if(m_bAuditing==TRUE)
{
GetParent()->DestroyWindow();
((CMainFrame*)AfxGetMainWnd())->OnMadeMade();
}
return;
}
str1.Format("正在操作,请等待%d",i);
((CRaChildFrame*)GetParentFrame( ))->Msg(str1);
Sleep(500);
((CRaChildFrame*)GetParentFrame( ))->MsgDel();
i--;
CFormView::OnTimer(nIDEvent);
}
void CMainFrame::OnAuditingCert()
{
// TODO: Add your command handler code here
m_currentwin=2;//审核
if(m_pAuditing!=NULL)
{
m_pAuditing->MDIActivate();
return;
}
m_pAuditing=new CRaChildFrame();
CCreateContext context;
context.m_pNewViewClass=RUNTIME_CLASS(CAuditingCertView);
if(!m_pAuditing->LoadFrame(IDI_ICON4,WS_MAXIMIZE|WS_OVERLAPPEDWINDOW,this,&context))
return;
m_pAuditing->ShowWindow(SW_SHOWMAXIMIZED);
m_pAuditing->InitialUpdateFrame(NULL,true);
}
void CMainFrame::OnMadeMade()
{
// TODO: Add your command handler code here
m_currentwin=4;//制作
if(m_pMade!=NULL)
{
m_pMade->MDIActivate();
return;
}
m_pMade=new CRaChildFrame();
CCreateContext context;
context.m_pNewViewClass=RUNTIME_CLASS(CMadeCertView);
if(!m_pMade->LoadFrame(IDI_ICON5,WS_MAXIMIZE|WS_OVERLAPPEDWINDOW,this,&context))
return;
m_pMade->ShowWindow(SW_SHOWMAXIMIZED);
m_pMade->InitialUpdateFrame(NULL,true);
}