高手指教:SDI中如何动态切换视类?RUNTIME CLASS 如何用?
问题点数:50、回复次数:7Top
1 楼wistaria(听风听雨)回复于 2000-12-19 09:32:00 得分 0
看看《vc技术内幕》第5版的例子 EX20CTop
2 楼Jedi(杰迪)回复于 2000-12-19 09:47:00 得分 0
我没有这本书,请您发给我如何?谢谢!jedi@sanlian.com.cn,先给30分,呵呵...余下的收到再付....再次感谢!Top
3 楼wistaria(听风听雨)回复于 2000-12-19 09:59:00 得分 35
已经发送,你先看看Top
4 楼Jedi(杰迪)回复于 2000-12-19 10:19:00 得分 0
多谢,多谢,正是我想要的,多谢!Top
5 楼sanjianxia(三剑侠)回复于 2001-07-06 16:26:24 得分 15
看下面的两个视由菜单动态切换的例子:
void CMainFrame::ChangeForm(int nForm)
{
CView * pOldActiveView=GetActiveView();
CView * pNewActiveView=(CView *)GetDlgItem(nForm);
if (pNewActiveView==NULL)
{
switch(nForm)
{
case IDW_ORDER_FORM:
pNewActiveView = (CView*)new CProdView;
break;
case IDW_CUST_FORM:
pNewActiveView = (CView*)new CCustView;
break;
}
CCreateContext context;
context.m_pCurrentDoc=pOldActiveView->GetDocument();
pNewActiveView->Create(NULL,NULL,0L,CFrameWnd::rectDefault,this,nForm,&context);
pNewActiveView->OnInitialUpdate();
}
SetActiveView(pNewActiveView);
pNewActiveView->ShowWindow(SW_SHOW);
pOldActiveView->ShowWindow(SW_HIDE);
if(pOldActiveView->GetRuntimeClass()==RUNTIME_CLASS(CProdView))
pOldActiveView->SetDlgCtrlID(IDW_ORDER_FORM);
else
if(pOldActiveView->GetRuntimeClass()==RUNTIME_CLASS(CCustView))
pOldActiveView->SetDlgCtrlID(IDW_CUST_FORM);
pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
RecalcLayout();
}
void CMainFrame::OnCustomer()
{
// TODO: Add your command handler code here
if(GetActiveView()->IsKindOf(RUNTIME_CLASS(CCustView)))
return;
ChangeForm(IDW_CUST_FORM);
}
void CMainFrame::OnUpdateCustomer(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetCheck(GetActiveView()->IsKindOf(RUNTIME_CLASS(CCustView)));
}
void CMainFrame::OnProduct()
{
// TODO: Add your command handler code here
if(GetActiveView()->IsKindOf(RUNTIME_CLASS(CProdView)))
return;
ChangeForm(IDW_ORDER_FORM);
}
void CMainFrame::OnUpdateProduct(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetCheck(GetActiveView()->IsKindOf(RUNTIME_CLASS(CProdView)));
}
Top
6 楼Jedi(杰迪)回复于 2001-10-15 15:14:04 得分 0
给分拉。Top
7 楼wzaen(方雨)回复于 2001-10-15 15:54:15 得分 0
gzTop




