當我們用Application Wizard產生一個新的項目時,MFC會自動為我們產生不少的程式檔案,那麼這些檔案都是幹什麼用的呢?在這裡,我把它們向大家介紹一下,希望對一些初學VC的朋友有些協助,老鳥們就不用浪費時間了,呵呵!
其實產生項目完成之後,我們會在項目目錄裡面發現一個readme.txt檔案,項目所產生的程式檔案在這裡都有介紹,不過一般都是英文的。Application Wizard產生項目的同時,也展現了MFC機製為我們打下的程式架構,更為我們提供了用以擴充的程式。
依據不同的選項,產生的檔案也有所不同,以下是Application Wizard產生的標準程式檔案(假設項目名稱為ExMFC),大致可以分為以下幾類:
· 工作區檔案、專案檔和make檔案
· 應用程式源檔案和標頭檔
· 資源檔
· 先行編譯標頭檔
· 按可選項增加的AppWizard檔案
工作區、專案檔和make檔案
ExMFC.dsp — 這是MFC產生的專案檔,它包含當前項目的設定、所包含的檔案等資訊。
ExMFC.dsw — 這是MFC自動產生的工作區檔案,它包含當前工作區所包含的項目的資訊。
ExMFC.MAK — 這是MFC項目的專案檔,這也是與NMAKE相容的檔案。如果選擇了External make檔案可選項,則可人工對它編輯,但不能利用Visual C++許多項目編輯特性。
ExMFC.clw — 這個檔案含有被ClassWizard用來編輯現有類或增加新類的資訊。ClassWizard還用這個檔案來儲存建立和編輯訊息映射和對話方塊資料所需的資訊,或是建立虛擬成員函數所需的資訊。
應用程式源檔案和標頭檔
ExMFC.h — 這是應用程式的主標頭檔,它含有所有全域符號和用於包含其它標頭檔的#include偽指令。
ExMFC.cpp — 這個檔案是應用程式的主源檔案。它將建立CExMFCApp類的一個對象(從CWinApp派生),並覆蓋InitInstance成員函數。
MainFrm.h,MainFrm.cpp — 這兩個檔案將從CFrameWnd(SDI應用程式)或CMDIFrameWnd(MDI應用程式)派生CMainFrame類。如果在AppWizard的Application Options頁(6步中的第4步)中選擇了對應的可選項的話,CMainFrame類將處理工具條按鈕和狀態條的建立。MAINFRM.CPP檔案還含有MFC應用程式提供的預設工具條按鈕的對象ID——叫做buttons數組。
ExMFCDoc.h,ExMFCDoc.cpp — 這些檔案從CDocument類派生並實現名為CExMFCDoc的文檔類,並含有用於初始化文檔、序列化(儲存和裝入)文檔和用於調試診斷的一些成員函數的架構。
ExMFCView.h,ExMFCView.cpp — 這些檔案派生並實現名為CExMFCView的視類,用於顯示和列印文檔資料。CHelloView類是從CView或它的衍生類別派生出來的,含有繪製視和用於調試診斷的一些成員函數架構。
資源檔
ExMFC.rc, Resource.h, ExMFC.rc2 —這是項目的標頭檔及其資源檔。資源檔含有一般MFC應用程式的預設菜單定義和加速鍵表、字串表。它還指定了預設的About對話方塊和一個表徵圖檔案(res"ExMFC.ico)。資源檔了標準的MFC類的資源。如果指定了支援工具條,它還將指定工具條位元影像檔案(RES"TOOLBAR.BMP)。ExMFC.rc2用於存放Visual Studio不可直接編輯的資源。
先行編譯標頭檔:STDAFX.CPP,STDAFX.H
這兩個檔案用於建立一個先行編譯的標頭檔ExMFC.PCH和一個預定義的類型檔案STDAFX.OBJ。由於MFC體繫結構非常大,包含許多標頭檔,如果每次都編譯的話比較費時。因此,我們把常用的MFC標頭檔都放在stdafx.h中,如afxwin.h、afxext.h、afxdisp.h、afxcmn.h等,然後讓stdafx.cpp包含這個stdafx.h檔案。這樣,由於編譯器可以識別哪些檔案已經編譯過,所以stdafx.cpp就只編譯一次,並產生所謂的先行編譯標頭檔(因為它存放的是標頭檔編譯後的資訊,故名)。如果讀者以後在編程時不想讓有些MFC標頭檔每次都被編譯,也可以將它加入到stdafx.h中。採用先行編譯標頭檔可以加速編譯過程。
好了,到現在你可能對AppWizard產生的程式檔案有了一個很好的瞭解了,剩下的就是添加自己要完成特定功能的東西了。