首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC++

MFC 程式架構大剖析:文檔/視圖核心類別與關係圖解(三)

     編輯:VC++

MFC 應用程式四大核心類別詳解

承接前文,我們已對比過 SDK 與 MFC 的程式框架對應關係。要真正看透 MFC 架構,必須深入理解 AppWizard 產生的四大核心類別及其協作關係。以 SDI 專案為例,向導生成的主要類別皆繼承自 MFC 基礎類別,分別對應不同職責:

1. 框架視窗類別

對應應用程式主視窗,定義於 MainFrm.h,實作於 MainFrm.cpp。所有框架視窗相關功能(工具列、狀態列、選單列等)均在此定義實作。

2. 文檔類別

MFC 採用文檔/視圖架構。文檔類別無直觀視覺對應,但負責資料儲存與管理。以 Word 為例:開啟的檔案即「文檔」,螢幕顯示的內容則是「視圖」。文檔提供資料支撐,視圖負責呈現。定義於 HelloWorldDoc.h,實作於 HelloWorldDoc.cpp。

3. 視圖類別

負責顯示文檔資料、處理使用者輸入。使用者看到的介面、進行的編輯繪圖操作,皆透過視圖類別實現。定義於 HelloWorldView.h,實作於 HelloWorldView.cpp。

4. 應用程式類別

掌控 MFC 應用程式的初始化、啟動運行與結束。對應檔案 HelloWorld.cpp 與 HelloWorld.h。

類別關係圖與運行機制

MFC 應用程式物件關係圖

從圖中可見:應用程式啟動時建立應用程式物件,在 InitInstance 中建立文檔模板物件(由 CDocManager 管理),進而透過模板管理文檔、視圖與框架視窗的建立與關聯。

學習心得與建議

本文著重宏觀架構分析,略過大量實作細節。學習 MFC 是漫長旅程,不同階段會有不同體悟。我的經驗是:務必在宏觀層面建立對 MFC 應用程式框架的感性認識。有了整體方向,後續學習才不會迷失在茫茫 API 與類別庫中,知道自己正在學習什麼、為何而學。希望這系列文章能與大家共同成長!

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved