|
雞啄米在上一講中介紹了MFC的消息映射機(jī)制,屬于原理方面的知識(shí)。對(duì)于VC++編程入門學(xué)習(xí)者來說可能有些抽象,雞啄米會(huì)把消息映射的知識(shí)滲透到后面的教程中。本節(jié)開始為大家講解偏應(yīng)用的知識(shí)-創(chuàng)建對(duì)話框。 對(duì)話框,大家應(yīng)該很熟悉了,在我們常用的軟件中大多都有對(duì)話框界面,例如,360安全衛(wèi)士的主界面其實(shí)就是個(gè)對(duì)話框,只是它做了很多美工方面的工作,將其大大美化了。 創(chuàng)建對(duì)話框主要分兩大步,第一,創(chuàng)建對(duì)話框資源,主要包括創(chuàng)建新的對(duì)話框模板、設(shè)置對(duì)話框?qū)傩院蜑閷?duì)話框添加各種控件;第二,生成對(duì)話框類,主要包括新建對(duì)話框類、添加控件變量和控件的消息處理函數(shù)等。雞啄米在本節(jié)中先講講怎樣創(chuàng)建對(duì)話框模板和設(shè)置對(duì)話框?qū)傩浴?/p> 創(chuàng)建基于對(duì)話框的應(yīng)用程序框架 之前雞啄米創(chuàng)建的HelloWorld程序是單文檔應(yīng)用程序,生成了多種窗口,如果用它來將講創(chuàng)建對(duì)話框的話可能有些復(fù)雜,對(duì)大家單純理解對(duì)話框有點(diǎn)影響,所以這里雞啄米就再創(chuàng)建一個(gè)基于對(duì)話框的應(yīng)用程序,用來實(shí)現(xiàn)加法運(yùn)算的功能。創(chuàng)建步驟同單文檔應(yīng)用程序大同小異,簡(jiǎn)單步驟如下: 1.選擇菜單項(xiàng)File->New->Project,彈出“New Project”對(duì)話框。 2.左側(cè)面板中Installed Templated的Visual C++下選擇MFC,中間窗口中選擇MFC Application,然后在下面的Name編輯框中鍵入工程名稱,本例取名“Addition”,在Location編輯框中設(shè)置工程的保存路徑。點(diǎn)“OK”。 3.點(diǎn)“Next”到“Application Type”對(duì)話框,在Application type下選擇Dialog based,其他使用默認(rèn)設(shè)置,點(diǎn)“Finish”。 我們可以在Solution Explorer視圖中看到,此工程的文件要比單文檔應(yīng)用程序少的多,在Class View中主要有三個(gè)類:CAboutDlg、CAdditionApp和CAdditionDlg。CAboutDlg是應(yīng)用程序的“關(guān)于”對(duì)話框類,CAdditionApp是由CWinApp派生的類,CAdditionDlg是主對(duì)話框類,主對(duì)話框也就是此應(yīng)用程序運(yùn)行后顯示的主要界面。 注:如果在VS2010中找不到Solution Explorer或Class View等視圖,可以在菜單項(xiàng)View下找到對(duì)應(yīng)視圖選項(xiàng)選擇即可。在VS2010的使用介紹中已經(jīng)有講解。 在Resource View視圖中可以看到工程Addition的資源樹,展開Addition.rc,下面有四個(gè)子項(xiàng):Dialog(對(duì)話框)、Icon(圖標(biāo))、String Table(字符串表)和Version(版本)。然后展開Dialog項(xiàng),下面有兩個(gè)對(duì)話框模板,其ID分別為:IDD_ABOUTBOX和IDD_ADDITION_DIALOG,前者是“關(guān)于”對(duì)話框的模板,后者是主對(duì)話框的模板。ID是資源的唯一標(biāo)識(shí),本質(zhì)上是一個(gè)無符號(hào)整數(shù),一般ID代表的整數(shù)值由系統(tǒng)定義,我們無需干涉。 對(duì)話框模板 可見對(duì)于主對(duì)話框來說,創(chuàng)建對(duì)話框第一步中的創(chuàng)建新的對(duì)話框模板已經(jīng)由系統(tǒng)自動(dòng)完成了。而如果是再添加對(duì)話框需要?jiǎng)?chuàng)建新的對(duì)話框模板時(shí),需要在Resource View的“Dialog”節(jié)點(diǎn)上點(diǎn)右鍵,在右鍵菜單中選擇“Insert Dialog”,就會(huì)生成新的對(duì)話框模板,并且會(huì)自動(dòng)分配ID。 在Resource View的資源樹中雙擊某個(gè)ID,可在中間區(qū)域內(nèi)顯示相應(yīng)的資源界面。雙擊IDD_ADDITION_DIALOG時(shí),中間區(qū)域就會(huì)顯示Addition對(duì)話框模板。如下圖: 設(shè)置對(duì)話框?qū)傩?/strong> 在Addition對(duì)話框模板上點(diǎn)右鍵,然后在右鍵菜單中選擇Properties,則在右側(cè)面板中會(huì)顯示對(duì)話框的屬性列表。如下圖: 雞啄米在這里對(duì)經(jīng)常使用的幾個(gè)屬性作簡(jiǎn)單說明,并對(duì)Addition對(duì)話框進(jìn)行屬性設(shè)置說明。 1.ID:對(duì)話框ID,唯一標(biāo)識(shí)對(duì)話框資源,可以修改。此處為IDD_ADDITION_DIALOG,我們不修改它。 2.Caption:對(duì)話框標(biāo)題。此處默認(rèn)為Addition,我們將其修改為“加法計(jì)算器”。 3.Border:邊框類型。有四種類型:None、Thin、Resizing和Dialog Frame。我們使用默認(rèn)的Dialog Frame。 4.Maximize:是否使用最大化按鈕。我們使用默認(rèn)的False。 5.Minimize:是否使用最小化按鈕。同樣我們使用默認(rèn)的False。 6.Style:對(duì)話框類型。有三種類型:Overlapped(重疊窗口)、Popup(彈出式窗口)和Child(子窗口)。彈出式窗口比較常見。我們使用默認(rèn)的Popup類型。 7.System Menu:是否帶有標(biāo)題欄左上角的系統(tǒng)菜單,包括移動(dòng)、關(guān)閉等菜單項(xiàng)。我們使用默認(rèn)的True。 8.Title Bar:是否帶有標(biāo)題欄。我們使用默認(rèn)的True。 9.Font(Size):字體類型和字體大小。如果將其修改為非系統(tǒng)字體,則Use System自動(dòng)改為False。而如果Use System原來為False,將其修改為True,則Font(Size)自動(dòng)設(shè)置為系統(tǒng)字體。這里我們使用默認(rèn)的系統(tǒng)字體。 根據(jù)以上說明,其實(shí)我們只修改了標(biāo)題屬性。這時(shí)我們運(yùn)行此程序后的界面如下: 這一講就先講到這里了,對(duì)于創(chuàng)建對(duì)話框第一步中的為對(duì)話框添加各種控件下一講為大家演示。歡迎來雞啄米博客交流學(xué)習(xí)。 |
|
|