MFC編程入門之六(對話框:創建對話框模板和修改對話框屬性)


  本節開始為大家講解偏向應用的知識——創建對話框。
   對話框,大家應該很熟悉了,在我們常用的軟件中大多都有對話框界面,例如,360安全衛士的主界面其實就是對話框,知識它做了很多美工
方面的工作,將其大大美化了。
   創建對話框主要分為兩大步:
   第一,創建對話框資源,主要包括創建新的對話框模板、設置對話框屬性和為對話框添加各種控件;
   第二,生成對話框類,主要包括新建對話框類、添加控件變量和控件的消息處理函數等。

一、創建對話框的應用程序框架
   之前創建的HelloWorld程序是單文檔應用程序,生成了多種窗口,如果用它來講創建對話框的話可能有些復雜,對大家單純理解對話框有點
影響,所以這里就再創建一個基於對話框的應用程序,用來實現假發運算的功能。創建步驟同單文檔程序大同小異,簡單步驟如下:
   1、選擇菜單項File->New->Project,彈出"New Project"對話框;
   2、左側面板中Installed Templated的Visual C++下選擇MFC,中間窗口中選擇MFC Application,然后在下面的Name編輯框中鍵入工程名稱,
本例取名“Addition”,在Location編輯框中設置工程的保存路徑。點擊“OK”。
   3、點擊"Next"到"Application Type"對話框,在Application Type下選擇Dialog based,其他使用默認設置,點擊"Finish".
   我們可以在Solution Explorer視圖中看到,此工程的文件要比單文檔應用程序少的多,在Class View中主要有三個類:CAboutDlg、CAdditionApp
和CAdditionDlg。CAboutDlg是應用程序的“關於”對話框類,CAdditionApp是由CWinApp派生的類,CAdditionDlg是主對話框類,主對話框也就是應用
程序運行后顯示的主要界面。
   注:如果在VS2010中找不到Solution Explorer或Class View等視圖,可以菜單項View下找到對應視圖選項選擇即可。
   在Resource View視圖中可以看到工程Addition的資源樹,展開Addition.rc,下面有四個子項:Dialog(對話框)、Icon(圖標)、String Table(字
符串表)和Version(版本)。然后展開Dialog項,下面有兩個對話框模板,其ID分別為:IDD_ABOUTBOX和IDD_ADDITION_DIALOG,前者是“關於”對話框的
模板,后者是住對話框的模板。ID是資源的唯一標識,本質上是一個無符號整數,一般ID代表的整數值由系統定義,我們無需干涉。
二、對話框模板
   可見對於主對話框來說,創建對話框第一步中的創建新的對話框模板已經由系統自動完成了。而如果再添加對話框需要創建新的對話框模板時,需要在
Resource View的"Dialog"節點上點擊右鍵,在右鍵菜單中選擇"Insert Dialog",就會生成新的對話框模板,並且會自動分配ID。
 在Resource View的資源樹中雙擊某個ID,可在中間區域內顯示相應的資源界面。雙擊IDD_ADDITION_DIALOG時,中間區域就會顯示Addition對話框模板。
如下圖:

三、設置對話框屬性
   在Addition對話框模板上點擊右鍵,然后右鍵菜單中選擇Properties,則在右側面板中會顯示對話框的屬性列表。如下圖:


   在這里對經常使用的幾個屬性操作簡單說明,並對Addition對話框進行屬性設置說明。
   1、ID:對話框ID,唯一標識對話框資源,可以修改。此處為IDD_ADDITION_DIALOG,我們不修改它。
   2、Caption:對話框標題。此處默認為Addition,我們將其修改為“加法計算器”。
   3、Border:邊框類型。有四種類型:None、Thin、Resizing和Dialog Frame。我們使用默認的Dialog Frame。
   4、Maximize:是否使用最大化按鈕。我們使用默認的false。
   5、Minimize:是否使用最小化按鈕。同樣我們使用默認的False。
   6、Style:對話框類型。有三種類型:Overlapped(重疊窗口)、Popup(彈出式窗口)和Child(子窗口)。彈出式窗口比較常見。我們使用默認的
Popup類型。
   7、System Menu:是否帶有標題欄左上角系統菜單,包括移動、關閉等菜單項。我們使用默認的true。
   8、Title Bar:是否帶有標題欄。我們使用默認的True。
   9、Font(Size):字體類型和字體大小。如果將其修改為非系統字體,則Use System自動改為False。而如果Use System原來為False,將其改為True,
則Font(Size)自動設置為系統字體。這里我們使用默認的系統字體。
   根據以上說明,其實我們只修改了標題屬性。這時我們運行此程序后的界面如下:
   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM