在初始分隔四個視圖,然后左上視圖是樹狀結構,通過節點改變左下和右下視圖;;;;左下視圖可以輸入數字,并在右下視圖中textout顯示出來。可是,我發現根本顯示不出來,查了一下,發現沒有關聯到document。但是一般view創建后,不是自動關聯到document嗎?請問我這個該如何關聯呢,代碼如下:
mainframe.cpp
void CMainFrame::SwitchToView(int nViewType)
{
CView* pView = (CView*)m_wndSplitter1.GetPane(1, 0);
// CRect rcRight, rcFrame;
// pView->GetClientRect(&rcRight);
// GetClientRect(&rcFrame);
CRect rt;
GetClientRect(&rt);
switch (nViewType)
{
case ViewD: //CListPaneView
{
if (!pView->IsKindOf(RUNTIME_CLASS(CViewD)))
{
m_wndSplitter1.DeleteView(1, 0);
m_wndSplitter1.CreateView(1, 0, RUNTIME_CLASS(CViewD),
CSize(rt.Width() / 5, rt.Height() / 10), NULL);
m_wndSplitter1.RecalcLayout();
/* m_pLefBottomView = (CViewC*)m_wndSplitter.GetPane(1, 0);*/
m_wndSplitter2.DeleteView(1, 0);
m_wndSplitter2.CreateView(1, 0, RUNTIME_CLASS(CViewD),
CSize(rt.Width() * 4 / 5, rt.Height() / 10), NULL);
m_wndSplitter2.RecalcLayout();
/* m_pLefBottomView = (CViewC*)m_wndSplitter.GetPane(1, 1);*/
}
break;
}
case ViewC: //CEditPaneView
{
if (!pView->IsKindOf(RUNTIME_CLASS(CViewC)))
{
//洗掉舊的視圖
m_wndSplitter1.DeleteView(1, 0);
//創建新的視圖
m_wndSplitter1.CreateView(1, 0, RUNTIME_CLASS(CViewC),
CSize(rt.Width() / 5, rt.Height() / 10), NULL);
//調整分布
m_wndSplitter1.RecalcLayout();
/*m_pLefBottomView = (CViewC*)m_wndSplitter.GetPane(1, 0);*/
m_wndSplitter2.DeleteView(1, 0);
m_wndSplitter2.CreateView(1, 0, RUNTIME_CLASS(CViewB),
CSize(rt.Width() * 4 / 5, rt.Height() / 10), NULL);
m_wndSplitter2.RecalcLayout();
/* m_pLefBottomView = (CViewC*)m_wndSplitter.GetPane(1, 1);*/
}
break;
}
default:
break;
}
}
右下角視圖:
void CViewB::OnDraw(CDC* pDC)
{
CKnifeTestDoc *pDoc = (CKnifeTestDoc *)this->GetDocument();
pDC->TextOut(100, 10, pDoc->m_docstr1);
pDC->TextOut(250, 10, pDoc->m_docstr2);
.....
}
左下角的視圖引數可以保存到doc中,但是右下角視圖沒有關聯到document。。。是哪里出問題了呢?誠心感謝~
uj5u.com熱心網友回復:
沒人回答呀~~uj5u.com熱心網友回復:
https://wenku.baidu.com/view/1786a7d4cc22bcd126ff0cc2.html轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/98286.html
標籤:界面
上一篇:自適應中值濾波原理中一句話沒看懂
