如果我只用系統最初建好的文檔類來儲存數據,而各視圖顯示的是數據的不同部分,
1、首先這樣是否能實現?還是說必須每個視圖要建一個文檔?
2、如果可以。那麼我怎麼獲得其中某個視圖的指針?(比如我這裡用到的有CTreeView,CRichEditView,並且CRichView的視圖塊有兩個,需要讓他們獨立顯示,而不是共同顯示一個數據)
目前只是把視圖單純地分割了,代碼如下
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: 在此添加專用代碼和/或調用基類
if (!m_wndSplitter.CreateStatic(this, 1, 2))
{
return FALSE;
}
CRect rect;
GetClientRect(&rect);
m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(TreeView), CSize(rect.Width() / 3 - 170, rect.Height()), pContext);
if (!m_wndSplitter2.CreateStatic(&m_wndSplitter, 1, 2, WS_CHILD | WS_VISIBLE, m_wndSplitter.IdFromRowCol(0, 1))
|| !m_wndSplitter2.CreateView(0, 0, RUNTIME_CLASS(RichEditView), CSize(rect.Width() / 3 - 50, rect.Height()), pContext)
|| !m_wndSplitter2.CreateView(0, 1, RUNTIME_CLASS(RichEditView), CSize(rect.Width() / 3, rect.Height()), pContext))
{
return FALSE;
}
return TRUE;
//return CFrameWnd::OnCreateClient(lpcs, pContext);
}
可以通過CMainFrame類來中轉。CSplitterWnd::GetPane()得到各個視圖的CView*指針