首頁>技術>

其實所有的節日,都不是為了禮物和紅包而生,而是提醒我們不要忘記愛與被愛,生活需要儀式感,而你需要的是在乎和關愛。。。

---- 網易雲熱評

一、特點

只能管理一個文件

二、相關類

CWinApp / CFrameWnd / CView / CDocument - 文件類

CDocManager - 文件管理類

CDocTemplate - 文件模板類

CSingleDocTemplate - 單文件模板類

三、例項

1、新增三大框架,動態建立

class CMyDoc :public CDocument {       DECLARE_DYNCREATE(CMyDoc)};IMPLEMENT_DYNCREATE(CMyDoc,CDocument)class CMyView :public CEditView {       DECLARE_DYNCREATE(CMyView)};IMPLEMENT_DYNCREATE(CMyView, CEditView)class CMyFrameWnd :public CFrameWnd{       DECLARE_DYNCREATE(CMyFrameWnd)};IMPLEMENT_DYNCREATE(CMyFrameWnd,CFrameWnd)

2、新增應用框架,手動建立

class CMyWinApp:public CWinApp {public:       virtual BOOL InitInstance();};CMyWinApp theApp;BOOL CMyWinApp::InitInstance() {       //單文件模板類物件       CSingleDocTemplate* pTemplate = new CSingleDocTemplate(IDR_MENU1,  RUNTIME_CLASS(CMyDoc), RUNTIME_CLASS(CMyFrameWnd), RUNTIME_CLASS(CMyView));       AddDocTemplate(pTemplate);       OnFileNew();       m_pMainWnd->ShowWindow(SW_SHOW);       m_pMainWnd->UpdateWindow();       return TRUE;}

3、執行報錯,需要新增字串表

4、新增字串表,右擊資源,新增string table

5、執行結果:

6、關係圖

theApp

|->m_pDocManager //文件管理類物件地址

|->m_templateList

|->CSingleDocTemplate* pTemplate

|->m_pOnlyDoc //文件類物件地址

|->m_pDocClass

//文件類的靜態變數的地址RUNTIME_CLASS(CMyDoc)

|->m_pFrameClass

//框架類的靜態變數的地址RUNTIME_CLASS(CMyFrameWnd)

|->m_pViewClass

//檢視類的靜態變數的地址RUNTIME_CLASS(CMyView)

7、OnFileNew函式的執行過程

透過theApp獲取文件管理類物件地址(m_pDocManager)

透過文件管理類物件地址(m_pDocManager)獲取一個連結串列成員(m_templateList)並從連結串列中獲取單文件模板類物件(pTemplate)

利用單文件模板類物件(pTemplate)獲取文件類的靜態變數地址,並呼叫物件加工廠函式,動態建立文件類物件,並返回物件地址。

利用單文件模板類物件(pTemplate)獲取框架類的靜態變數地址,並呼叫物件加工廠函式,動態建立子框架類物件,並返回物件地址。

利用框架類物件呼叫LoadFrame函式,建立主框架視窗.在處理框架視窗的WM_CREATE訊息時,動態建立檢視類物件並建立檢視視窗。

在處理檢視視窗的WM_CREATE訊息時,將檢視類物件和文件類物件建立繫結關係

26
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 圖文介紹程序和執行緒的區別