首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

MFC 多文檔程序中利用文檔指針動態創建視圖

     編輯:程式設計綜合問答

需求分析

在 MFC 多文檔架構(MDI)中,主框架工具欄已有「新建/打開/保存」按鈕,現需在 CMainFrame 自定義按鈕中復用「打開」功能:已獲取文檔指針(CDocument*),如何基於此指針創建新視圖?

核心思路

MFC 文檔/視圖架構中,視圖由文檔模板(CDocTemplate)管理創建。文檔指針本身不直接創建視圖,需通過模板實例化。

實現步驟

  1. 獲取應用程序對象中的文檔模板指針:
    CMultiDocTemplate* pTemplate = (CMultiDocTemplate*)AfxGetApp()->m_pDocManager->GetFirstDocTemplate();
  2. 調用模板的 CreateNewFrame 與 InitialUpdateFrame:
    CFrameWnd* pFrame = pTemplate->CreateNewFrame(pDoc, NULL);
    pTemplate->InitialUpdateFrame(pFrame, pDoc);

注意事項

  • 確保 pDoc 為有效文檔指針(已關聯模板)
  • 單文檔多視圖同理,但模板類型為 CSingleDocTemplate
  • 視圖創建後會自動註冊到文檔的視圖列表,無需手動管理

擴展參考

  • MFC 單文檔創建多視圖技巧
  • MDI 程序啟動時單文檔雙視圖實現
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved