1. 程式人生 > >VS2010-MFC(對話框:創建對話框模板和修改對話框屬性)

VS2010-MFC(對話框:創建對話框模板和修改對話框屬性)

生成 col 無需 pan 可見 創建 caption color none

轉自:http://www.jizhuomi.com/software/149.html

對話框,大家應該很熟悉了,在我們常用的軟件中大多都有對話框界面,例如,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下找到對應視圖選項選擇即可。在VS2010的使用介紹中已經有講解。

在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)自動設置為系統字體。這裏我們使用默認的系統字體。

根據以上說明,其實我們只修改了標題屬性。這時我們運行此程序後的界面如下:

技術分享圖片

VS2010-MFC(對話框:創建對話框模板和修改對話框屬性)