1. 程式人生 > >1.3 基於對話方塊的MFC應用程式例項

1.3 基於對話方塊的MFC應用程式例項

MFC的全程是“Microsoft Foundation Classes”(微軟基礎類庫),是微軟為了簡化Windows下應用程式的編寫而提供的一個框架。MFC對基本API做了封裝,並提供了數量眾多的C++封裝類。在程式設計時使用MFC,雖然會降低少許執行效率,但是會大大提高應用程式的開發效率。

1.3.1 技術要點:

  • 對話方塊是Windows系統中的特殊視窗,對話方塊在系統內部已經實現了訊息處理等功能,使得對話方塊的使用比普通視窗簡單快捷。在Windows系統中,對話方塊的使用非常廣泛;
  • 在MFC中,對話方塊的封裝類為CDialog,並且基於CDialog,又細分了眾多的派生類,實現了對更多具體功能的封裝;

1.3.2 例項步驟:
本例項演示基於MFC的對話方塊應用程式的方法,例項步驟如下:

  1. 開啟Visual C++ 6.0,單擊“File”/“New”選單,此時將彈出專案嚮導對話方塊。在對話方塊中選擇專案型別為“MFC AppWizard(exe)”,在專案名稱文字框中輸入“MfcDialog”,單擊“OK”/“確認”按鈕進入下一步;圖1.1 選擇專案型別為MFC應用程式
  2. 在接下來的對話方塊中,選擇“Dialog based”,其餘選項採用預設值,單擊“Finish”/“確認”按鈕完成嚮導;圖1.2  選擇新建基於對話方塊的MFC應用程式
  3. 在完成應用程式嚮導後,IDE將自動開啟對話方塊的設計介面。在設計介面中,可以通過滑鼠拖動的方法改變對話方塊的大小,還可以將工具箱中的控制元件拖動到對話方塊上,已新增控制元件。在控制元件上單擊滑鼠右鍵,並單擊“Properties”/“屬性”選單,可以設定控制元件的屬性。讀者可以嘗試修改對話方塊上的靜態文字按鈕的內容;圖1.3  修改標題

1.3.3 程式執行:

圖1.4  程式執行

1.3.4 源程式解讀:

  • 通過Visual C++ 6.0的Class View,可以看到嚮導已經為應用程式生成了3個類,其中CAboutDlg是“關於”對話方塊類。“關於”對話方塊可以在專案嚮導的後續步驟中選擇是否需要:①、類CMfcDialogApp是整個應用程式的框架,用於控制應用程式的啟動和結束;②、CMfcDialogDlg是主對話方塊類,用於控制主對話方塊的行為,以及接受主對話方塊上的滑鼠或鍵盤事件,並處理這些事件;
  • 在設計對話方塊大小時,Visual C++ 6.0的狀態列右下角會以數字的形式顯示對話方塊尺寸,但是要注意,這個尺寸並非畫素,而是一個叫做“DLU”(對話方塊邏輯單位)的單位。每個水平DLU相當於對話方塊所用字型平均寬度的1/4,每個垂直DLU相當於對話方塊所用字型平均高度的1/8;
說明:這樣的設定,其優點是可以保證在對話方塊字型改變時,視窗大小和字型大小比例保持一致,缺點是在設計期無法精確控制對話方塊畫素大小。如果要精確控制對話方塊大小,可以在對話方塊初始化時通過程式碼重新指定對話方塊尺寸。