1. 程式人生 > >04_MFC知識點總結(三)

04_MFC知識點總結(三)

一、文件檢視結構


文件類(CDocument):儲存載入(讀寫)資料
截圖類(CView):顯示和修改資料

1)單文件
a)文件模板:把框架視窗、文件、檢視關聯在一起
b)單文件(CDocument):
        OnNewDocument(),第一次新建視窗呼叫,後面每次“新建”,自動呼叫次函式
        DeleteContents(),做一些釋放資源的操作,後面按“新建”,新建前先呼叫此函式
c)框架類可以認為是檢視類的容器

2)各類相關訪問
    a)在類檢視,如何訪問文件物件指標 CView::GetDocument
    CDocument* GetDocument() const;
    


二、文件序列化(二進位制操作檔案CArchive)相當於Qt QDataStorm


序列化:以二進位制方式寫檔案
反序列化:以二進位制方式讀檔案

1)寫檔案
    a)建立檔案物件 CFile
    b)以寫方式開啟CFile::Open
    c)建立序列化物件,並且和檔案關聯在一起CArchive
        CArchive::Close
    e)往資料流寫資料(相當於往檔案寫資料)
    f)關閉檔案CFile::Close

2)讀檔案
    a)建立檔案物件 CFile
    b)以讀方式開啟CFile::Open
    c)建立序列化物件,並且和資料夾關聯在一起 CArchive
        CArchive::load從文件檔案裝載資料。 CFile只讀
    d)往資料流讀資料(相當於往檔案讀資料)
        ar >> a >> b >> c
    e)斷開資料流和檔案的關聯 CArchive::Close
    f)關閉檔案 CFile::Close

三、文件檢視案例


1)文件類自帶序列化操作函式 Serialize()
    void 
    
2)學生管理xit
    a)定義一個學生類Stu
    b)文件類儲存資料,檢視類修改和顯示資料
        1)從尾部新增元素 CList::AddTail
        2)獲得此列表尾部元素的位置 CList::GetTailPosition
        3)獲取上一個元素 CList::GetPrev
        4)獲取下一個元素 CList::GetNext
        5)獲取當前首元素位置 CList::GetHeadPosition
        6)獲取最後一個元素位置 CList::GetTailPosition
        7)獲取指定元素位置 CList::GetAt
        8)移除頭結點元素(並沒有釋放空間)CList::REmoveHead
    c)檢視的基類是 CFormView
    d)重寫文件類 DeleteContents(),做一些釋放資源的操作,每次按“新建”,新建前先呼叫此函式

四、資料庫程式設計


1)安裝mysql
    a)安裝MySQL伺服器
    b)MySQL odbc驅動
2)odbc層次圖
    a)odbc一套標準介面(內部通過sql語句操作資料庫,使用者就算是不懂sql語句也可以藉助odbc)
    b)資料來源

3)如何建立資料來源(MySQL只能是快照)
    a)快照(Snapshot)記錄集:每次操作更新查詢後才更新
        1)DoFiledExchange()自動把資料庫的欄位和變數相關聯
        2)GetDefaultConnect()獲取資料庫連線資訊
        3)GetDefaultSQL()獲取資料庫連線的表
    b)動態(Dynaset)記錄集:每次操作自動更新(新增記錄外)
        1)OnIitialUpdata()主要作初始化功能

4)應用程式情況
    a)CRocordset的子類,主要是對資料庫進行相應操作
    b)CFormView的子類,顯示資料庫的檢視
        1)OnIitialUpdata()主要作初始化功能