?? d022.bmp.txt
字號:
NULL);
)
/*an instance of type CMinMFCApp*/
UMFC通過該應用程序對象進行Initlnstance()函數,啟動程序,初始化主窗口
CMinMFCApp thisApp;
上述程序段定義了一個最小的MFC應用程序所需的框架程序。其中聲明了CMinMFCApp
類,它是從應用程序類CWinApp中派生下來的;和窗口CMainWindow類,它是從框架窗
口CFrameWnd類派生出來,還用CMinMFCApp定義了一個全局對象ThisApp。讀者也許會
問,為什么沒有WinMain函數?因為MFC已經把它封裝起來了。在程序運行時,MFC應
用程序首先調用由框架提供的標準的WinMain函數。在WinMain函數中,首先初始化由
CMinMFCApp定義的惟一的實例,然后調用CMinMFCApp繼承CWinApp的Run成員函數,
進入消息循環。退出時調用CWinApp的Exitlnstance函數。
由上面的說明可以看到,應用程序框架不僅提供了構建應用程序所需要的類( CWinApp,
CFrameWnd等),還定義了程序的基本執行結構。所有的應用程序都在這個基本結構基礎上
完成不網的功能。
MFC除了定義程序執行結構之外,還定義了三種基本的主窗口模型:單文檔窗口,多
文檔窗口和對話框作為主窗口的模型。
Visual C++提供了用于支持應用程序框架兩個重要的工具,它們就是前面提到的
AppWizard和ClassWizard。AppWizard用于在應用程序框架基礎上迅速生成用戶的應用程序
基本結構,ClassWizard用于維護這種應用程序結構。
Microsoft MFC具有以下不同于其他類庫的優勢:
1)完全支持Windows所有的函數、控件、消息、GDI基本圖形函數,菜單及對話框。
類的設計以及同API函數的結合相當合理。
2)使用與傳統的Windows API同樣的命名規則,即匈牙利命名法。
3)進行消息處理時,不使用易產生錯誤的switch/case語句,所有消息映射到類的成員
函數,這種直接由消息到方法的映射對所有的消息都適用。它通過宏來實現消息到成員函數
的映射,而且這些函數不必是虛擬的成員函數,這樣不需要為消息映射函數生成一個很大的
虛擬函數表,節省內存。
4)通過發送有關對象信息到文件的能力提供更好的判定支持,也可確認成員變量。
5)支持異常錯誤的處理,減少了程序出錯的機會。
6)遙行時確定數據對象的類型。這允許實例化時動態操作各域。
7)有較少的代碼和較快的速度。MFC庫只增加了少于40KB的目標代碼,效率只比傳
統的C Windows程序低596。
8)可以利用與MFC緊密結合的AppWizard和ClassWizard等工具快速開發出功能強大
的應用程序。
9)在使用MFC時還允許混合使用傳統的函數調用。
1.3.2 MFC對消息的管理
Windows消息的管理包括消息發送和處理。為了支持消息發送機制,MFC提供了三個
22
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -