程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> VC++ >> 明明白白看MFC之程序框架(三)

明明白白看MFC之程序框架(三)

編輯:VC++

三.程序結構大剖析

  在前面我分別給出了SDK和MFC應用程序的框架,並且稍微理了一下它們之間的對應關系。但是對於MFC程序來說,要想真正搞懂它的框架的話,還是不夠的。現在我要做的事就是繼續去分析一下上面的MFC程序,期望能夠如我的標題所言,明明白白的看透MFC的應用程序框架。

  首先就是看一下應用向導生成的MFC應用程序都有哪些主要的文件,包含哪些類以及相關類的對應功能和他們之間的關系(再次說明,因為我在這裡關心的是程序的框架結構,所以對於一些與話題關系不很大的東西我將會略去不提)。

  在上面的SDI應用程序中,向導為我們生成了4個主要的類,這些類都是MFC類的派生類,分別包含在對應的頭文件以及實現文件中。

  1、框架窗口類及其相關的文件

  框架窗口類對應應用程序的主窗口,明白這一點後就可以建立一個對這個類的感性認識了,他的定義是在頭文件MainFrm.h中,而實現則是在MainFrm.cpp文件中。所有與框架窗口向光的功能都是在這裡定義和實現的。

  2、文檔類及其相關的文件

  文檔類在應用程序中沒有直觀的對應關系,但是,我們應該知道的一點就是MFC的框架的一個特點就是文檔/視圖結構。這裡可以抽象一點地來理解,比如說我們在Word中打開了一個文件,其實,這個文件就是文檔,而我們看到的只不過是這個文件一個視圖,所以說文檔提供了應用程序顯示的支持,但是我們真正看到的應用程序顯示的則是一個視圖,文檔類的定義是在“Hello WorldDoc.h”中,而他的實現則是在“Hello WorldDoc.cpp”文件中。

  3、視圖類及其相關的文件

  視圖類是用來顯示文檔對象的內容的,我們在Word程序中所看到的界面就是一個視圖,我們要修改,畫圖首先操作的對象就是視圖,所以,視圖類就如他的名稱所指出的那樣,提供了從用戶角度看到的東西。視圖類的定義在“Hello WorldView.h”中,實現是在文件“Hello WorldView.h”中。

  4、應用程序類及其相關的文件

  MFC應用程序的初始化,啟動運行和結束都是由應用程序對象完成的。他對應的文件是”Hello World.cpp”和”Hello World.h”。

  在大致的了解了應用程序對象的作用之後,現在我們來看看它們之間的關系(如下圖所示)。

  從上面的圖中可以大致的看出MFC應用程序對象之間的關系了。應用程序一開始(此處的內容可以參考上一篇)生成應用程序對象,然後,在InitInstance中創建中將會創建文檔模板對象(通過CdocManager管理),這樣一來,應用程序就可以通過建立的模板對象來管理文檔、視圖、和框架窗口。
  
  至此,我的這篇文章終於可以暫時告一段落了,在文中我主要分析的是應用程序的框架,所以忽略了很多的實現細節。其實,學習MFC是一個非常漫長的路,處在不同的階段都會產生不同的看法和認識,相信隨著學習的深入,每一個人都會有自己的理解。但是在這裡我給出的自己的經驗就是:在學習MFC的時候,一定要在宏觀上對他的應用程序框架有個感性的認識!因為這樣之後,我們就會在學習的時候有個明顯的方向,知道自己學習的是什麼東西。我在一開始的時候,就沒有認識到這一點,所以往往在學習過程中,往往會不知道下一步應該做什麼,也不明白自己看的東西是做什麼用的。希望通過這篇文章可以與大家一起學習!
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved