MFC 物件之間的關聯性
若要幫助您觀察在檢視方塊中的文件/檢視建立程序,請考慮執行中的程式: 文件、 框架視窗用來包含檢視中,以及與文件相關聯的檢視。
文件會保留一份文件和指標的檢視,來建立文件的文件範本。
檢視會持續到它的文件的指標使用,且它的父框架視窗的子系。
文件框架視窗會保留其目前使用中檢視的指標。
文件範本會保留一份開啟的文件。
應用程式儲存一份文件樣版。
Windows 會追蹤的所有開啟的視窗,它可以將訊息傳送給他們。
在文件/檢視建立時,會建立這些關聯性。 下表顯示如何在執行中的程式中的物件可以存取其他物件。 任何物件可以藉由呼叫全域函式來取得應用程式物件的指標 AfxGetApp。
取得應用程式中的其他物件的存取權
從物件 |
如何存取其他物件 |
---|---|
Document |
使用 GetFirstViewPosition 和 GetNextView 來存取文件的檢視] 清單中。 呼叫 GetDocTemplate 以取得文件範本。 |
檢視 |
呼叫 GetDocument 取得文件。 呼叫 GetParentFrame 以取得框架視窗。 |
文件框架視窗 |
呼叫 GetActiveView 以取得目前的檢視。 呼叫 GetActiveDocument 取得文件附加至目前的檢視。 |
MDI 框架視窗 |
呼叫 MDIGetActive 以取得目前使用中 CMDIChildWnd。 |
通常,框架視窗有一個檢視,但是某些情況下,比如在分隔視窗中,同一個框架視窗包含多個檢視。 框架視窗會儲存指標到目前使用中檢視。 指標就會更新任何時候,就會啟動另一個檢視。
注意事項 |
---|
主框架視窗的指標儲存在 m_pMainWnd 應用程式] 物件的成員變數。呼叫OnFileNew您的覆寫的InitInstance成員函式的CWinApp設定m_pMainWnd了。如果您不會呼叫OnFileNew,您必須將變數的值設定InitInstance自己。(SDI COM 元件 (伺服器) 應用程式可能未設定變數 /Embedding 是否位於命令列上)。請注意, m_pMainWnd類別的成員現在是CWinThread而不是CWinApp。 |