在主程式創建框架視窗、以及文檔相關的視圖時,會使用CCreateContext結構。建立視窗時,此結構中的值用於連線構成文檔的組件和文檔數據的視圖。僅當覆蓋了創建過程時才需要使用CCreateContext。
CCreateContext結構包含了指向文檔、框架視窗和文檔模板的指針,包括了一個CRuntimeClass指針,CRuntimeClass標誌了待創建的視圖的類型。運行時類信息和當前文檔指針用於動態地創建視圖。下表列出了CCreateContext的每個成員的用法:
成員 | 用途 |
m_pNewViewClass | 待創建的視圖的CRuntimeClass |
m_pCurrentDoc | 將在其上創建視圖的文檔 |
m_pNewDocTemplate | 待創建的新MDI框架視窗的文檔模板 |
m_pLastView | 待創建視圖所依據的原始視圖,例如在創建分裂視窗的視圖或文檔的第二個框架視窗時 |
m_pCurrentFrame | 待創建框架視窗所依據的框架視窗,例如在文檔上創建第二個框架視窗時 |
當在文檔模板上創建一個文檔及其相關的組件時,它檢查存儲在CCreateContext結構中的信息的有效性。例如,不能在一個不存在的文檔上建立視圖。
注意:
CCreateContext結構中的所有指針都是可選的,在不需要或者未知時可設為NULL。
“請參閱”部分列出的函式會用到CCreateContext結構。在覆蓋這些函式之前,最好看以下對它們的詳細說明。
以下是一些通用的指導原則:
一般說來,如果使用了框架的預設設定,就可以忽略CCreateContext結構。如果想進行一些高級的修改,MFC類庫原始碼或例子程式(如VIEWEX)可以提供參考。如果記不清參數的使用,框架中提供的斷言將有助於發現參數使用的錯誤。
#include <afxext.h>