MFC 對象之間的關聯性

備註

Microsoft 基礎類別(MFC)函式庫持續被支援。 不過,我們不再新增功能或更新文件。

為了幫助理解文件/視圖創建過程,請考慮一個正在運行的程序:文件、包含視圖的視窗,以及與文件相關聯的視圖。

  • 文檔會保留該文檔的視圖清單,以及創建文檔的模板指標。

  • 視圖會保留其文件的指標,而且是其父視窗的子視窗。

  • 檔框架視窗會保留目前使用中檢視的指標。

  • 檔範本會保留其開啟的檔案清單。

  • 應用程式會保留其文件範本清單。

  • Windows 會追蹤所有開啟的視窗,以便傳送訊息給它們。

這些關聯性會在文件/檢視的建立過程中建立。 下表顯示執行程式中的物件如何存取其他物件。 任何物件都可以藉由呼叫全域函式 AfxGetApp 來取得應用程式物件的指標。

取得應用程式中其他物件的存取權

從物件 如何存取其他物件
文件 使用 GetFirstViewPosition 和 GetNextView 來存取檔的檢視清單。

呼叫 GetDocTemplate 以取得文件範本。
查看 呼叫 GetDocument 以取得檔。

呼叫 GetParentFrame 以取得框架視窗。
文件框架視窗 呼叫 GetActiveView 以取得目前的檢視。

呼叫 GetActiveDocument 以取得附加至目前檢視的檔。
MDI 框架視窗 呼叫 MDIGetActive 以取得目前作用中的 CMDIChildWnd。

一般而言,框架視窗有一個檢視,但有時候,如同在分隔器視窗中,相同的框架視窗包含多個檢視。 框架視窗會保留目前使用中檢視的指標;每當啟動另一個檢視時,指標就會更新。

備註

主框架視窗的指標會儲存在應用程式物件的 m_pMainWnd 成員變數中。 在您覆寫OnFileNew 的 InitInstance 成員函式時呼叫 CWinApp,這樣會替您設定 m_pMainWnd。 如果您未呼叫 OnFileNew,則必須自行設定變數的值 InitInstance 。 (如果 /Embedding 位於命令行上,SDI COM 元件 (伺服器) 應用程式可能無法設定變數。 請注意, m_pMainWnd 現在是 類別 CWinThread 的成員,而不是 CWinApp。

另請參閱

檔範本和檔/檢視建立程式
檔範本建立
文件/檢視創建
建立新的文件、視窗和檢視