程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> c++-求助!MFC單文檔多視圖的各視圖的問題

c++-求助!MFC單文檔多視圖的各視圖的問題

編輯:編程解疑
求助!MFC單文檔多視圖的各視圖的問題

如果我只用系統最初建好的文檔類來儲存數據,而各視圖顯示的是數據的不同部分,
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*指針

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved