Visual C++ 2010新特性:MFC的三大鉅變

 

在Visual C++ 2010中,無論從用戶體驗,還是從性能方面,IDE都有着巨大的改進,這些改進大大地提高了程序員開發效率。除此之外,增強的MFC,爲程序員能夠開發出絢麗多彩、安全穩定的應用程序奠定了堅實的基礎。本文從Visual C++ 2010便於生成Windows 7應用程序、重新啓動管理器、任務對話框三個方面介紹Visual C++ 2010下MFC的新功能! j8 {5 O3 O( b& p/ x
便於生成Windows 7應用程序
        提起Windows 7,從用戶體驗方面講,絢麗的窗口、華麗的動畫效果是其一大特點。如果在VC++6.0中開發出類似效果的應用程序,那是相當的不易,甚至是不太可能。對於程序員來說,能夠“與時俱進”才能體現當代程序員的鑽研精神,面對Windows 7如此強大的絢麗效果,難道我們只能是“嘆而用之”了嗎?多虧有了Visual C++ 2010,使我們自己開發的應用程序也能“炫”起來。
(1)支持對Windows API的訪問
        Windows 7 引入了多項激動人心的新技術和新功能以及新的 API,正是這些新技術、新功能和新的API給用戶帶來了簡單、易用、絢麗等全新體驗。Visual Studio 2010 提供了對所有新 Windows API 的訪問。Visual Studio 2010 提供了爲本機 Windows API 編寫代碼所需的 Windows SDK 組件,您可以通過使用 Visual Studio 2010 中的 SDK 頭文件和庫來利用如 Direct3D 11、DirectWrite、Direct2D 和 Windows Web Service API 等的革新。0 B$ M1 G9 g# @& h
  除了向開發人員開放所有 Windows API 以外,此版本的 Visual Studio 還使您可以在增強的 MFC 的幫助下更輕鬆地編寫 Windows 應用程序。可通過 MFC 庫訪問主要的 Windows 7 功能,而不必直接寫入本機 API。只需重新編譯,您現有的 MFC 應用程序就可以在 Windows 7 上大放異彩。而且,您的新應用程序可以充分利用新增的功能。
  (2)增強與Windows Shell的集成- D# d1 {2 [) O: B1 d, C( g: l
  MFC 與 Windows Shell 的集成也有所增強。通過使用Visual C++ 2010中增加的文件處理程序進行預覽、創建縮略圖和搜索,使我們的應用程序可以更好地與 Windows 資源管理器集成。這些功能作爲MFC 應用程序嚮導中的選項提供,如下圖,我們只需勾選相應選項,MFC將自動生成實現這些處理程序的ATL DLL 項目。& q1 x; C! o8 Y) {; n

8 i5 ~+ J/ g7 i: r! W- J3 u


 (3)超級任務欄( q$ w9 l; O/ f4 X3 X
  Windows 7 中最值得注意的一項用戶界面更改就是超級任務欄。增強的MFC 允許我們使用這些功能,如跳轉列表、選項卡式縮略圖、縮略圖預覽、進度條、圖標覆蓋等。下圖顯示了一個選項卡式多文檔MFC應用程序的縮略圖預覽和選項卡式縮略圖。


(4)Windows 7 樣式功能區
在Visual C++ 2010中創建的應用程序,可以擁有創建類似於Windows 7 樣式功能區,您可以從幾種Office樣式功能區切換到Windows 7樣式。如下圖0 ]8 J# B( d6 J8 C  y- |! I

5 S" t(5)支持多點觸控和DPI 識別
              增強的MFC 方便我們開發多點觸控應用程序,在各種不同的觸控事件發生時調用相應的消息,開發這樣的應用程序,我們只需註冊觸控和手勢事件。MFC默認實現高DPI的識別功能,因此,應用程序可以實現高DPI的屏幕,不會出現像素化或模糊現象。MFC 在內部縮放並更改字體和其他元素,以確保UI 在高 DPI 顯示器上也一樣清晰。9 b+ H; I  h! `: L
  增強後的MFC,本着對Window 7全面支持的態度,爲我們能夠開發出類似Window 7應用程序做好了準備,讓華麗、吸人眼球的應用程序不再是Window 7的專屬,我們也能。) R4 T! W# D/ I1 J
  重新啓動管理器
  對於大多數的電腦用戶來說,都遇到過這樣的情況,由於應用程序的意外關閉或重新啓動,將您花了很大功夫編寫的文檔化爲烏有,這是很鬱悶的事情。在Office2007中就增加了自動保存功能,一旦遇到上述情況,可以恢復到發生意外情況時的狀態,不至於讓自己工作成果因爲故障而丟失。在Visual C++ 2010中增加的重新啓動管理器,就是類似這方面的應用。
  重新啓動管理器是 Windows Vista 中引入的一項有用的功能,可以使應用程序在終止前執行保存的操作。應用程序可以調用此功能,然後在重新啓動時還原其狀態。在Visual C++ 2010中,我們可以在 MFC 應用程序中充分利用重新啓動管理器,更妥善地處理應用程序崩潰和重新啓動的情況。如何使用重新啓動管理器呢?分兩種情況:一是向現有的應用程序中添加重新啓動管理器;二是在新創建的MFC 應用程序中使用此功能。
    一、 向現有的應用程序中添加重新啓動管理器的功能+ b$ R# P. I5 p: Z
  1. 打開現有的MFC應用程序。
  2. 打開主應用程序的源文件。默認情況下,此文件是與應用程序同名的 .cpp 文件。如RestartManagerDemo的主應用程序源文件是 RestartManagerDemo.cpp。
   3. 查找主應用程序的構造函數。例如,如果項目RestartManagerDemo,則構造函數爲 CRestartManagerDemoApp:: CRestartManagerDemoApp()。
   4. 添加以下加亮的代碼行到構造函數中。
 

6 N: @: r  w  Z

$ E' J5 J% X( U) t; P
  5. 確保應用程序的InitInstance方法調用其父級 InitInstance 方法:CWinApp::InitInstance 或 CWinAppEx::InitInstance。; I# u5 E& R, n- G! J3 Z
  6. 編譯並運行應用程序。 

  二、 在新創建的MFC 應用程序中添加重新啓動管理功能,只需要在MFC應用程序嚮導中勾選相應的功能項即可。見下圖



各選項的功能列表:

選項名稱    

功能說明

在構造函數中自動添加的代碼

支持重新啓動管理器

表示您的應用程序將僅僅支持重新啓動功能。換句話說,您的用程序可以在升級或者崩潰之後重新啓動,但是無法自動打開未關閉的文檔,無法對數據進行恢復。                                                

m_dwRestartManagerSupportFlags = 
qAFX_RESTART_MANAGER_SUPPORT_RESTART;

重新打開以前打開的文檔

表示您的應用程序可以在重啓之後重新打開之前打開的文檔,也就是自動恢復到當前的工作狀態

m_dwRestartManagerSupportFlags = 
 TAFX_RESTART_MANAGER_SUPPORT_RESTART_ASPECTS;

支持應用程序恢復

表示您的應用程序在重新啓動後,不僅可以重新打開之前打開的文檔,還會嘗試恢復自動保存的文檔

m_dwRestartManagerSupportFlags =
 qAFX_RESTART_MANAGER_SUPPORT_ALL_ASPECTS;

  重新啓動管理器的行爲與應用程序的類型有關,如果是文檔編輯器之類的應用程序,重新啓動管理使應用程序器能夠自動保存已經打開的文檔的狀態和內容,在程序異常的時候,能夠保存運行時的數據,自動恢復到未發生異常時的情況,從而提高了程序的穩健性與可靠性。如果應用程序不是文檔編輯器,則重新啓動管理器將重新啓動應用程序,但默認情況下無法保存應用程序的狀態。
       在重新啓動應用程序後,根據不同的應用程序,將會彈出一個任務對話框(Unicode版本)或者消息框(非Unicode版本),詢問用戶是否需要恢復自動保持的文檔。如果用戶選擇“是”,那麼自動保持的文檔將被打開作爲當前文檔。如果用戶選擇“否”,那麼用戶最後保存的文檔將被打開作爲當前文檔,同時自動保存的文檔將被刪除。
 重新啓動管理器的加入,提高了程序的穩健性與可靠性,增強了用戶體驗。 

任務對話框; i9 r2 V: }' T! t, T& ]
  爲了改善用戶體驗,在Visual C++ 2010中,您可以使用任務對話框(Task Dialog)代替了原先廣泛使用的消息框(Message Box)。跟消息框相比,任務對話框不僅可以向用戶顯示消息,還可以顯示自定義的按鈕,命令行選項以及更加豐富的輔助信息等。新增的CTaskDialog類提供了很多簡單實用的函數,我們可以輕鬆上手,使用任務對話框來改善應用程序的用戶體驗,使自己的應用程序的界面風格跟Vista系統保持一致。如下圖:
0 z  _' g' `) D

1 L$ {+ ?! [, V1 a" L7 I
  在VC++ 6.0中,並不支持任務對話框,向用戶顯示消息,只能使用AfxMessageBox類,可以設置顯示內容、圖標和按鈕樣式。如下圖



 在CTaskDialog之前,AfxMessageBox也是一種不錯的選擇,CTaskDialog爲用戶提供了全面的信息和操作方式,爲用戶做出準確選擇提供足夠的信息。
 小結0 q' k) A0 S5 _! O7 W, f5 o
  從以上三個方面可以看出,增強的MFC爲程序員開發過程中提供了便利,爲能夠實現超酷、超炫的應用程序奠定基礎,正是這些與Windows 7、Vista風格保存一致的應用程序,極大的增強了用戶體驗,使我們開發的應用程序不再只是功能方面的強大,用戶體驗也是我們努力的方向,Visual C++ 2010爲我們的提高助有一臂之力。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章