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

雞啄米在上一講中介紹了MFC的消息映射機制,屬於原理方面的知識。對於VC++編程入門學習者來說可能有些抽象,雞啄米會把消息映射的知識滲透到後面的教程中。本節開始爲大家講解偏應用的知識-創建對話框。

       對話框,大家應該很熟悉了,在我們常用的軟件中大多都有對話框界面,例如,360安全衛士的主界面其實就是個對話框,只是它做了很多美工方面的工作,將其大大美化了。

       創建對話框主要分兩大步,第一,創建對話框資源,主要包括創建新的對話框模板、設置對話框屬性和爲對話框添加各種控件;第二,生成對話框類,主要包括新建對話框類、添加控件變量和控件的消息處理函數等。雞啄米在本節中先講講怎樣創建對話框模板和設置對話框屬性。

       創建基於對話框的應用程序框架

       之前雞啄米創建的HelloWorld程序是單文檔應用程序,生成了多種窗口,如果用它來將講創建對話框的話可能有些複雜,對大家單純理解對話框有點影響,所以這裏雞啄米就再創建一個基於對話框的應用程序,用來實現加法運算的功能。創建步驟同單文檔應用程序大同小異,簡單步驟如下:

       1.選擇菜單項File->New->Project,彈出“NewProject”對話框。

       2.左側面板中InstalledTemplatedVisual C++下選擇MFC,中間窗口中選擇MFC Application,然後在下面的Name編輯框中鍵入工程名稱,本例取名“Addition”,在Location編輯框中設置工程的保存路徑。點“OK”

       3.“Next”“ApplicationType”對話框,在Application type下選擇Dialog based,其他使用默認設置,點“Finish”

       我們可以在SolutionExplorer視圖中看到,此工程的文件要比單文檔應用程序少的多,在ClassView中主要有三個類:CAboutDlgCAdditionAppCAdditionDlgCAboutDlg是應用程序的關於對話框類,CAdditionApp是由CWinApp派生的類,CAdditionDlg是主對話框類,主對話框也就是此應用程序運行後顯示的主要界面。

      注:如果在VS2010中找不到SolutionExplorerClass View等視圖,可以在菜單項View下找到對應視圖選項選擇即可。在VS2010的使用介紹中已經有講解。

       ResourceView視圖中可以看到工程Addition的資源樹,展開Addition.rc,下面有四個子項:Dialog(對話框)、Icon(圖標)、StringTable(字符串表)和Version(版本)。然後展開Dialog項,下面有兩個對話框模板,其ID分別爲:IDD_ABOUTBOXIDD_ADDITION_DIALOG,前者是關於對話框的模板,後者是主對話框的模板。ID是資源的唯一標識,本質上是一個無符號整數,一般ID代表的整數值由系統定義,我們無需干涉。

       對話框模板

       可見對於主對話框來說,創建對話框第一步中的創建新的對話框模板已經由系統自動完成了。而如果是再添加對話框需要創建新的對話框模板時,需要在Resource View“Dialog”節點上點右鍵,在右鍵菜單中選擇“Insert Dialog”,就會生成新的對話框模板,並且會自動分配ID

       ResourceView的資源樹中雙擊某個ID,可在中間區域內顯示相應的資源界面。雙擊IDD_ADDITION_DIALOG時,中間區域就會顯示Addition對話框模板。如下圖:


      設置對話框屬性

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


      雞啄米在這裏對經常使用的幾個屬性作簡單說明,並對Addition對話框進行屬性設置說明。

       1.ID:對話框ID,唯一標識對話框資源,可以修改。此處爲IDD_ADDITION_DIALOG,我們不修改它。

       2.Caption:對話框標題。此處默認爲Addition,我們將其修改爲加法計算器

       3.Border:邊框類型。有四種類型:NoneThinResizingDialogFrame。我們使用默認的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。而如果UseSystem原來爲False,將其修改爲True,則Font(Size)自動設置爲系統字體。這裏我們使用默認的系統字體。

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


      這一講就先講到這裏了,對於創建對話框第一步中的爲對話框添加各種控件下一講爲大家演示。歡迎來雞啄米博客交流學習。

發佈了3 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章