文件/檢視架構的簡介
在一般 MFC 應用程式中文件和檢視是成對的。 資料會儲存在文件中,不過檢視具有資料的存取權限。 將文件從檢視中分離,會將資料的儲存和維護從其顯示分隔開來。
從檢視獲得文件資料的存取權
檢視會使用 GetDocument 函式來存取其檔的資料,該函式會傳回檔的指標,或讓檢視類別成為檔類別的 C++ friend
。 當檢視準備繪製或進行操作時,會利用其資料存取權來取得資料。
例如,從檢視的 OnDraw 成員函式,檢視會使用 GetDocument
來取得檔指標。 然後,它會使用該指標來存取文件中的 CString
資料成員。 檢視會傳遞字串至 TextOut
函式。 若要查看此範例的程式碼,請參閱 在檢視 中繪製。
使用者輸入到檢視
檢視也會其本身內將按一下滑鼠動作解譯為選取或編輯資料。 同樣地,也可以將按鍵輸入解譯為資料輸入或編輯。 假設使用者在管理文字的檢視中輸入字串。 檢視會取得文件的指標,並使用指標將新資料傳遞至文件 (以某些資料結構儲存資料)。
更新相同文件的多個檢視
在具有相同檔之多個檢視的應用程式中,例如文字編輯器中的分隔器視窗,檢視會先將新資料傳遞至檔。 然後它會呼叫檔的 UpdateAllViews 成員函式,以告知檔的所有檢視自行更新,以反映新的資料。 這會同步處理檢閱。