MFC練習小結:單文本文檔

在練習了前面兩個實驗以後,略微對MFC的單文本文檔(SDI)有所瞭解,現總結如下:

1、生成一個單文本文檔會有CAboutDlg幫助類、CMainFrame主框架類、C"文件名"App應用類、C"文件名"Doc文檔類、C"文件名"View視類等基本的幾大類。

用→表示派生的話,有如下的關係

CFrameWndCMainFrame,主程序窗口

CWinAppCSDIApp,程序初始化與收尾工作

CDocumentCSDIDoc,存放程序數據並在磁盤上讀寫

CView→CSDIView,程序數據顯示並處理用戶輸入

//下爲附加的一些介紹,根據需要在應用嚮導第六步進行選擇
//CEditView,文本編輯
//CScrollView,視察滾動條
//CRecordView,數據庫存取
//CHtmlView,視察顯示超文本
//CFormView,視察放置控件
//CTreeView,以顯示樹狀數據
//CListView,顯示列表數據
//CRichEditView,支持更多的文本編輯,支持RPT


上述四個基本類相互調用公有函數和發送消息進行通信程序任何位置都可使用全局函數AfxGetApp()取得指向應用類對象指針,通過應用類的GetMainWnd()得到主框架窗口指針,在視類中使用GetDocument()取得文檔類對象指針,如:

CSDIApp *pApp = (CSDIApp*) AfxGetApp();
CMainFrame *pMainFrame = (CMainFrame*) pApp->GetMainWnd();
CSDIDoc *pDoc = GetDocument();

 

2、文檔類和視類中的主要函數

①CDocument類中的主要函數

UpDateAllviews(),一個文檔對應多個視,可用此函數通知每個與此相關的視,表示此文檔已經被修改,每個視調用自己的OnUpdate()進行更新;

OnNewDocument(),當使用“新建”命令時,應用程序調用此函數,並通過它調用DeleteContent()使文檔清空。在單文本文檔中,應用程序用此函數重新初始化現有文檔;而在多文本文檔中,應用程序框架將建立一個新的文檔並調用此函數進行初始化;

OnOpenDocument(),當使用“打開”命令時,應用程序調用此函數打開指定文件,並通過它調用DeleteContent()進行清空。在單文本文檔與多文本文檔當中,類似於上述OnNewDocument();

②CView類中的主要函數

OnDraw(),應用程序調用此函數進行屏幕顯示打印打印預覽,當視的窗口重畫時,也要調用它;

GetDocument(),通過此函數獲得指向當前視所對應的文檔類指針,使用這個指針調用文檔類的公有成員

OnUpdate(),視類對應的文檔數據被修改後,調用此函數進行更新,此函數也被文檔類中的UpDateAllviews()調用;

OnPrint(),應用程序在打印和打印預覽時將調用此函數。

終於摸清一點眉目了,好辛苦啊!

發佈了49 篇原創文章 · 獲贊 131 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章