




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章對(duì)話框3.1創(chuàng)建對(duì)話框
[例Ex_DlgDemo]使用向?qū)?chuàng)建對(duì)話框應(yīng)用程序(1)選擇“文件”
“新建”菜單,在彈出的“新建”對(duì)話框中選擇“工程”頁面,選擇MFCAppWizard(exe),在工程框中輸入項(xiàng)目名Ex_DlgDemo。3.1創(chuàng)建對(duì)話框(2)單擊[確定]按鈕,在出現(xiàn)的“Step1”對(duì)話框中選擇“基本對(duì)話(框)”應(yīng)用程序類型,如圖所示。(3)單擊[下一個(gè)]按鈕,出現(xiàn)如圖(右)所示的對(duì)話框,允許用戶設(shè)置對(duì)話框的風(fēng)格及ActiveX控件等特點(diǎn)的支持。3.1創(chuàng)建對(duì)話框(4)單擊[下一個(gè)]按鈕出現(xiàn)如圖(左)所示的對(duì)話框,兩個(gè)方面的選項(xiàng)可供用戶選擇:一是在源文件中是否加入注釋用來引導(dǎo)用戶編寫程序代碼,另一是使用動(dòng)態(tài)鏈接庫還是靜態(tài)鏈接庫。(5)保留默認(rèn)選項(xiàng),單擊[下一個(gè)]按鈕出現(xiàn)如圖(右)所示的對(duì)話框。3.1創(chuàng)建對(duì)話框1.資源的分類 創(chuàng)建一個(gè)默認(rèn)的單文檔應(yīng)用程序項(xiàng)目Ex_SDI1,并其項(xiàng)目工作區(qū)窗口切換到“ResourceView”頁面,Ex_SDI1資源視圖:3.1創(chuàng)建對(duì)話框VisualC++6.0使用的資源可分為下列幾類:快捷鍵列表(Accelerator):一系列組合鍵的集合,被應(yīng)用程序用來引發(fā)一個(gè)動(dòng)作。對(duì)話框(Dialog):含有按鈕、列表框、編輯框等各種控件的窗口。圖標(biāo)(Icon):代表應(yīng)用程序顯示在Windows桌面上的位,它同時(shí)有32
32像素和1616像素兩種規(guī)格。菜單(Menu):用戶通過菜單完成應(yīng)用程序的大部分操作。字串表(StringTable):應(yīng)用程序使用的全局字符串或其他標(biāo)識(shí)符。工具欄按鈕(Toolbar):工具欄外觀是以一系列具有相同尺寸的位圖組成的版本信息(Version):包含應(yīng)用程序的版本、用戶注冊(cè)碼等相關(guān)信息。3.1創(chuàng)建對(duì)話框當(dāng)添加或創(chuàng)建資源或資源對(duì)象時(shí),系統(tǒng)會(huì)為其提供默認(rèn)的名稱,如IDR_MAINFRAME等。要遵循下列規(guī)則:
2.標(biāo)識(shí)符
(1)在標(biāo)識(shí)符名稱中允許使用字母a~z、A~Z、0~9以及下劃線。(2)標(biāo)識(shí)符名稱不區(qū)分大小寫字母,如new_idd與New_Idd是相同的標(biāo)識(shí)符。(3)不能以數(shù)字開頭,如8BIT是不合法的標(biāo)識(shí)符名。字符個(gè)數(shù)不得超過247個(gè)。VisualC++還提供了一些常用的定義標(biāo)識(shí)符名稱的前綴供用戶使用、參考,每一個(gè)定義的標(biāo)識(shí)符都保存在應(yīng)用程序項(xiàng)目的Resource.h文件中,它的取值范圍為0~32767。3.1創(chuàng)建對(duì)話框字符個(gè)數(shù)不得超過247個(gè)。除了上述規(guī)則外,出于習(xí)慣,VisualC++還提供了一些常用的定義標(biāo)識(shí)符名稱的前綴供用戶使用、參考,見表標(biāo)識(shí)符前綴含義IDR_表示快捷鍵或菜單相關(guān)資源IDD_表示對(duì)話框資源IDC_表示光標(biāo)資源或控件IDI_表示圖標(biāo)資源IDB_表示位圖資源IDM_表示菜單項(xiàng)ID_表示命令項(xiàng)IDS_表示字符表中的字符串IDP_表示消息框中使用的字符串3.2.2添加對(duì)話框資源
[例Ex_SDI]在單文檔程序中添加對(duì)話框資源創(chuàng)建一個(gè)默認(rèn)的單文檔應(yīng)用程序項(xiàng)目Ex_SDI。(1)選擇“插入”
“資源”菜單,或按快捷鍵Ctrl+R打開“插入資源”對(duì)話框中看到資源列表中存在Dialog項(xiàng),若單擊Dialog項(xiàng)左邊的“+”號(hào),將展開對(duì)話框資源的不同類型選項(xiàng),表列出各種類型的對(duì)話框資源的不同用途?!安迦胭Y源”對(duì)話框
:3.2.2添加對(duì)話框資源[新建]按鈕用來創(chuàng)建一個(gè)由“資源類型”列表中指定類型的新資源。[定制]按鈕是用來創(chuàng)建“資源類型”列表中沒有的新類型的資源。[導(dǎo)入]按鈕是用于將外部已有的位圖、圖標(biāo)、光標(biāo)或其他定制的資源添加到當(dāng)前應(yīng)用程序中。類
型說
明IDD_DIALOGBAR對(duì)話條,往往和工具條停放一起IDD_FORMVIEW一個(gè)表狀風(fēng)格的對(duì)話框,用于無模式對(duì)話框或視圖類IDD_OLE_PROPPAGE_LARGE一個(gè)大的OLE屬性頁IDD_OLE_PROPPAGE_SMALL一個(gè)小的OLE屬性頁IDD_PROPPAGE_LARGE一個(gè)大屬性頁,用于屬性對(duì)話框IDD_PROPPAGE_MEDIUM一個(gè)中等大小的屬性頁,用于屬性對(duì)話框IDD_PROPPAGE_SMALL一個(gè)小的屬性頁,用于屬性對(duì)話框3.2.2添加對(duì)話框資源(2)對(duì)展開的不同類型的對(duì)話框資源不作任何選擇,選中“Dialog”,單擊[新建]按鈕,系統(tǒng)就會(huì)自動(dòng)為當(dāng)前應(yīng)用程序添加了一個(gè)對(duì)話框資源。3.2.2添加對(duì)話框資源系統(tǒng)為對(duì)話框資源自動(dòng)賦給它一個(gè)默認(rèn)標(biāo)識(shí)符名稱使用通用的對(duì)話框模板創(chuàng)建新的對(duì)話框資源。對(duì)話框的默認(rèn)標(biāo)題為Dialog,有[OK]和[Cancel]兩個(gè)按鈕,這兩個(gè)按鈕的標(biāo)識(shí)符分別為IDOK和IDCANCEL。對(duì)話框模板資源所在的窗口稱為對(duì)話框資源編輯,在這里可以通過控件工具欄和布局工具欄向?qū)υ捒蛱砑雍筒季挚丶?,并可設(shè)置對(duì)話框的屬性。 VisualC++6.0開發(fā)環(huán)境的工具欄具有“浮動(dòng)”與“停泊”功能,圖中的控件工具欄是處于“浮動(dòng)”狀態(tài),通常將它拖放到窗口右側(cè),以便于操作。3.2.3設(shè)置對(duì)話框?qū)傩栽趯?duì)話框模板處右擊鼠標(biāo),從彈出的快捷菜單中選擇“屬性”菜單項(xiàng),出現(xiàn)如圖所示的對(duì)話框?qū)傩源翱?。?duì)話框的屬性有General(一般)、Styles(風(fēng)格)、MoreStyles(更多)、ExtendedStyles(擴(kuò)展風(fēng)格)、MoreExtendedStyles(更多擴(kuò)展風(fēng)格)等部分,這里僅介紹最常用的General屬性。3.2.3設(shè)置對(duì)話框?qū)傩?/p>
對(duì)話框的General屬性項(xiàng)
目說
明ID框修改或選擇對(duì)話框的標(biāo)識(shí)符名稱標(biāo)題框輸入對(duì)話框的標(biāo)題名稱,中英文均可,如“我的對(duì)話框”字體按鈕單擊此按鈕可選擇字體的種類(如宋體)及尺寸(如9號(hào))Xpos/Ypos對(duì)話框左上角在父窗口中的X、Y坐標(biāo),都為0時(shí)表示居中菜單框默認(rèn)值為無,當(dāng)對(duì)話框需要菜單時(shí)輸入或選擇指定的菜單資源Classname默認(rèn)值為無,它提供C/C++語言編程時(shí)所需要的對(duì)話框類名,對(duì)MFC類庫的資源文件來說,該項(xiàng)不被激活。將添加對(duì)話框的General屬性進(jìn)行如下三點(diǎn)修改,將對(duì)話框標(biāo)識(shí)符改成IDD_DIALOG_FIRST;將對(duì)話框標(biāo)題改為“我的第一個(gè)對(duì)話框”;單擊[字體]按鈕,通過彈出的字體對(duì)話框?qū)?duì)話框內(nèi)的文本設(shè)置成“宋體,9”,以使自己的對(duì)話框和Windows中的對(duì)話框保持外觀上的一致。3.2.4添加和布局控件
1.控件的添加對(duì)話框編輯器最初打開時(shí),控件工具欄是隨之出現(xiàn)的,利用此工具欄中的各個(gè)按鈕可以順利完成控件的添加。說明了各 個(gè)圖標(biāo)按鈕所對(duì)應(yīng)的控件類型??丶倪x擇靜態(tài)文本組框復(fù)選框組合框水平滾動(dòng)條旋轉(zhuǎn)按鈕滑動(dòng)條列表視圖標(biāo)簽復(fù)合編輯月歷用戶定制工具靜態(tài)圖片編輯框按鈕單選框列表框垂直滾動(dòng)條進(jìn)展條熱鍵樹形視圖動(dòng)畫日期選擇IP地址組合框的擴(kuò)展3.2.4添加和布局控件 對(duì)話框中添加一個(gè)控件的方法有下列幾種:在控件工具欄中單擊某控件,此時(shí)鼠標(biāo)箭頭在 對(duì)話框內(nèi)變成“十”字形狀;在對(duì)話框指定位置單擊 鼠標(biāo)左鍵,則此控件被添加到對(duì)話框的相應(yīng)位,再 拖動(dòng)選擇框可改變控件的大小和位置。在控件工具欄中單擊某控件,此時(shí)鼠標(biāo)箭頭對(duì) 話框內(nèi)變成“十”字形狀;在指定位置單擊鼠標(biāo)左鍵 不放,拖動(dòng)鼠標(biāo)至滿意位置,釋放鼠標(biāo)鍵。用鼠標(biāo)左鍵點(diǎn)中控件工具欄中的某控件,按住 鼠標(biāo)左鍵不放;在移動(dòng)鼠標(biāo)到對(duì)話框的指定位置的 過程中,會(huì)看到一個(gè)虛線框,下面帶有該控件的標(biāo) 記;釋放鼠標(biāo)左鍵,新添加的控件立即出現(xiàn)在對(duì)話 框中。3.2.4添加和布局控件控件的刪除、復(fù)制和布局操作一般都要先選取控件,若選取單個(gè)控件,則可以下列方法:鼠標(biāo)直接選取。首先保證在控件工具欄中的選擇按鈕()是被選中的,然后移動(dòng)鼠標(biāo)指針至指定的控件上,單擊鼠標(biāo)左鍵即可。用助記符來選取。如果控件的標(biāo)題中帶有下劃線的字符,這個(gè)字符就是助記符,選擇時(shí)直接按下該助記符鍵或“Alt+助記符”組合鍵即可。用Tab鍵選取。在對(duì)話框編輯器中,系統(tǒng)會(huì)根據(jù)控件的添加次序自動(dòng)設(shè)置相應(yīng)的Tab鍵次序。利用Tab鍵,用戶可在對(duì)話框內(nèi)的控件中進(jìn)行選擇。2.控件的選取
3.2.4添加和布局控件對(duì)于多個(gè)控件的選取,可采用下列方法:先在對(duì)話框內(nèi)按住鼠標(biāo)左鍵不放,拖出一個(gè)大的虛框,然后釋放鼠標(biāo),則被虛框所包圍的控件將被選取。先按住Shift鍵不放,然后用鼠標(biāo)選取控件,直到所需要的多個(gè)控件選取之后再釋放Shift鍵。需要注意的是:(1)單個(gè)控件被選取后,選擇框上還有幾個(gè)藍(lán)色實(shí)心小方塊,拖動(dòng)它可改變控件的大小。(2)多個(gè)控件被選取后,其中只有一個(gè)控件的選擇框有幾個(gè)藍(lán)色實(shí)心小方塊,這個(gè)控件稱為主要控件的小方塊。(b)(a)
3.2.4添加和布局控件3.控件的刪除、復(fù)制和布局單個(gè)控件或多個(gè)控件被選取后,按方向鍵或用鼠標(biāo)拖動(dòng)控件的選擇框可移動(dòng)控件。在鼠標(biāo)拖動(dòng)過程中還按住Ctrl鍵則復(fù)制控件。按Del鍵可將選取的控件刪除。對(duì)控件的布局,對(duì)話框編輯器中提供了控件布局工具欄可以自動(dòng)地排列對(duì)話框內(nèi)的控件,并能改變控件的大小。
靠齊上邊 左右間隔相等 大小相同 靠齊左邊 上下居中 寬度相同 顯示標(biāo)尺
靠齊右邊 左右居中 高度相同測(cè)試對(duì)話框 靠齊下邊 上下間隔相等 顯示網(wǎng)格3.2.4添加和布局控件布局工具相對(duì)應(yīng)的菜單命令在“編排”菜單下,而且大部分命令均有相應(yīng)的快捷鍵?!熬幣拧辈藛尾皇窃赩isualC++6.0開發(fā)環(huán)境一開始就出現(xiàn)的,而是隨著對(duì)話框編輯器的打開而顯示的。值得注意的是:大多數(shù)布置控件的命令使用前,都需要用戶選取多個(gè)控件,且“主要控件”起到了關(guān)鍵作用。只改變其它控件的大小,并與“主要控件”的尺寸一致。設(shè)置的方法是按住Ctrl或Shift鍵,然后用鼠標(biāo)單擊所要指定的控件即可。為了便于用戶在對(duì)話框內(nèi)精確定位各個(gè)控件,系統(tǒng)還提供了網(wǎng)格、標(biāo)尺等輔助工具。一旦網(wǎng)格顯示,添加或移動(dòng)控件時(shí)都將自動(dòng)定位在網(wǎng)格線上。3.2.4添加和布局控件4.測(cè)試對(duì)話框“編排”菜單下的Test命令或布局工具欄上的測(cè)試按鈕是用來模擬所編輯的對(duì)話框的運(yùn)行情況,幫助用戶檢驗(yàn)對(duì)話框是否符合用戶的設(shè)計(jì)要求以及控件功能是否有效等。如圖(右下)右擊添加的控件,從快捷菜單中選擇“屬性”,出現(xiàn)如圖(左上)3.2.5創(chuàng)建對(duì)話框類
在應(yīng)用程序中使用添加的對(duì)話框須先為該對(duì)話框模板創(chuàng)建一個(gè)用戶對(duì)話框類。在對(duì)話框資源模板的空白區(qū)域(沒有其他元素或控件)內(nèi)雙擊鼠標(biāo),將彈出對(duì)話框單擊[OK]按鈕,彈出右圖所示的對(duì)話框。在Name框中輸入類名CFirstDlg,單擊[OK]按鈕,一個(gè)基于對(duì)話框資源模板的用戶對(duì)話框類CFirstDlg就創(chuàng)建好了。此時(shí)出現(xiàn)MFCClassWizard(MFC類向?qū)?對(duì)話框。3.2.6添加對(duì)話框代碼
在MFCClassWizard對(duì)話框中,可以看到“Classname”組合框已經(jīng)是CFirstDlg。單擊[AddFunction]按鈕或雙擊WM_INITDIALOG消息,MFCClassWizard自動(dòng)為CFirstDlg類添加OnInitDialog函數(shù)。在Memberfunctions表框中選擇剛添加的OnInitDialog,單擊[EditCode]將出現(xiàn)函數(shù)代碼編輯窗口,在函數(shù)中添碼:BOOLCFirstDlg::OnInitDialog(){CDialog::OnInitDialog();Static*pWnd=(CStatic*)GetDlgItem(IDC_STATIC_1);pWnd->SetWindowText(“這是我的第一個(gè)對(duì)話框!");returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}3.2.7在程序中使用對(duì)話框
(1)在項(xiàng)目工作區(qū)窗口中選擇ResourceView頁面,雙擊資源“Menu”項(xiàng)中的IDR_MAINFRAME,則菜單編輯器窗口出現(xiàn)在主界面的右邊,相應(yīng)的Ex_SDI項(xiàng)目的菜單資源被顯示出來,在菜單的最后一項(xiàng),VisualC++為用戶留出了一個(gè)空位置,用來輸入新的菜單項(xiàng),如圖3.2.7在程序中使用對(duì)話框(2)在菜單的空位置上雙擊鼠標(biāo)左鍵,則出現(xiàn)它的屬性對(duì)話框,在標(biāo)題框中輸入“測(cè)試(&T)”,結(jié)果如圖所示,其中符號(hào)&用來其后面的字符作為該菜單項(xiàng)的助記符,這樣當(dāng)按住“Alt”鍵不放,再敲擊該助記符鍵時(shí),對(duì)應(yīng)的菜單項(xiàng)就會(huì)被選中,或在菜單打開時(shí),直接按相應(yīng)的助記符鍵,對(duì)應(yīng)的菜單項(xiàng)也會(huì)被選中。3.2.7在程序中使用對(duì)話框(3)單擊菜單屬性對(duì)話框中的“保存可見”(KeepVisible)按鈕,使此屬性對(duì)話框一直可見,以方便操作。單擊“測(cè)試”菜單項(xiàng)下方的空位置,在屬性對(duì)話框中,輸入標(biāo)題“對(duì)話框(&D)”,在ID框輸入該菜單項(xiàng)的資源標(biāo)識(shí);_TEST_DLG,結(jié)果如圖所示,單擊屬性對(duì)話框右上角的關(guān)閉按鈕。3.2.7在程序中使用對(duì)話框(4)用鼠標(biāo)將新添加的菜單項(xiàng)拖到“查看”和“幫助”菜單項(xiàng)之間,結(jié)果如圖所示。菜單項(xiàng)“對(duì)話框”拖放后的位置(5)選擇“查看”
“建立類向?qū)А辈藛蚊罨蛑苯影碈trl+W快捷鍵,則出現(xiàn)MFCClassWizard對(duì)話框,該對(duì)話框會(huì)自動(dòng)切換到MessageMaps頁面。(6)從“Classname”組合框中選擇CMainFrame,在ObjectIds列表中選擇ID_TEST_DLG,然后在Messages框中選擇COMMAND消息。
3.2.7在程序中使用對(duì)話框(7)單擊[AddFunction]按鈕或雙擊COMMAND消息,出現(xiàn)“AddMemberFunction”對(duì)話框以輸入成員函數(shù)的名稱。系統(tǒng)默認(rèn)的函數(shù)名為OnTestDlg,如圖所示。該函數(shù)是對(duì)菜單項(xiàng)ID_TEST_DLG的映射,也就是說,當(dāng)在應(yīng)用程序運(yùn)行時(shí),用戶選擇“對(duì)話框”,則該函數(shù)OnTestDlg被調(diào)用,執(zhí)行函數(shù)中的代碼。3.2.7在程序中使用對(duì)話框單擊[OK]按鈕,在ClassWizard的“Memberfunctions”列表中將列出新增加的成員函數(shù)。選擇此函數(shù),單擊[EditCode]按鈕(或直接在函數(shù)名雙擊鼠標(biāo)),在此成員函數(shù)中添加下列代碼:voidCMainFrame::OnTestDlg(){
CFirstDlg
dlg; //定義對(duì)話框類對(duì)象
dlg.DoModal(); //顯示對(duì)話框}
代碼中,DoModal是CDialog基類成員函數(shù),它是用來顯示和終止模式對(duì)話框。3.2.7在程序中使用對(duì)話框在OnTestDlg函數(shù)的實(shí)現(xiàn)文件MainFrm.cpp的前面添加CFirstDlg類的頭文件包含,即:#include"Ex_SDI.h"#include"MainFrm.h"#include"FirstDlg.h“(10)編譯并運(yùn)行。在應(yīng)用程序菜單上,選擇“測(cè)試”
“對(duì)話框”菜單項(xiàng),將出現(xiàn)如圖的對(duì)話框,這個(gè)對(duì)話框就是剛才添加的對(duì)話框。4.3使用無模式對(duì)話框
1.模式對(duì)話框所謂“模式對(duì)話框”是指當(dāng)對(duì)話框被彈出,用戶必須在對(duì)話框中作出相應(yīng)的操作,在退出對(duì)話框之前,對(duì)話框所在的應(yīng)用程序不能繼續(xù)執(zhí)行。一般情況下,模式對(duì)話框會(huì)有[OK](確定)和[Cancel](取消)按鈕。單出[OK]按鈕,系統(tǒng)認(rèn)定用戶在對(duì)話框中的選擇或輸入有效,對(duì)話框退出;單擊[Cancel]按鈕,對(duì)話框中的選擇或輸入無效,對(duì)話框退出,程序恢復(fù)原有狀態(tài)。模式對(duì)話框的應(yīng)用范圍較廣,上面示例中的對(duì)話框和平常所見到的大多數(shù)對(duì)話框都是模式對(duì)話框。4.3使用無模式對(duì)話框所謂“無模式對(duì)話框”是指當(dāng)對(duì)話框被彈出后,一直保留在屏幕上,用戶可繼續(xù)在對(duì)話框所在的應(yīng)用程序中進(jìn)行其它操作;當(dāng)需要使用對(duì)話框時(shí),只需象激活一般窗口一樣單擊對(duì)話框所在的區(qū)域即可激活。[例Ex_Modeless]創(chuàng)建并使用無模式對(duì)話框用MFCAppWizard(exe)創(chuàng)建一個(gè)默認(rèn)的單文檔應(yīng)用程序x_Modeless。(2)在該項(xiàng)目中添加一個(gè)對(duì)話框資源,將其標(biāo)識(shí)符設(shè)為IDD_DIALOG_SECOND,標(biāo)題設(shè)為“無模式對(duì)話框”,(3)對(duì)話框字體和大小設(shè)為“宋體,9號(hào)”。為IDD_DIALOG_SECOND對(duì)話框資源創(chuàng)建一個(gè)對(duì)話框類CSecondDlg。2.無模式對(duì)話框4.3使用無模式對(duì)話框按Ctrl+W快捷鍵打開MFCClassWizard,從“Classname”列表中選擇CSecondDlg,在IDs列表中選擇IDOK,是對(duì)話框中[OK]按鈕的標(biāo)識(shí)符,然后在Messages框中選擇BN_CLICKED(單擊按鈕)消息,單擊[AddFunction]按鈕或雙擊BN_CLICKED消息,出現(xiàn)“AddMember
Function”對(duì)話框以輸入成員函數(shù)的名稱,保留系統(tǒng)默認(rèn)的函數(shù)名為OnOK,如圖所示。4.3使用無模式對(duì)話框(5)修改CSecondDlg::OnOK函數(shù)中的代碼。voidCSecondDlg::OnOK(){//添加其他代碼使用戶輸入對(duì)話框的數(shù)據(jù)有效DestroyWindow(); //終止對(duì)話框顯示deletethis; //刪除對(duì)話框,釋放內(nèi)存空間}代碼中,DestroyWindow是對(duì)話框基類CWnd的一個(gè)成員函數(shù),用來終止窗口。添加[Cancel]按鈕(標(biāo)識(shí)符為IDCANCEL)的BN_CLICKED消息映射,并修改其映射函數(shù)CSecondDlg::OnCancel的代碼。voidCSecondDlg::OnCancel() //單擊[Cancel](取消)按鈕{
DestroyWindow();deletethis;}4.3使用無模式對(duì)話框在項(xiàng)目工作區(qū)窗口中選擇ResourceView頁面,雙擊資源“Menu”項(xiàng)中的IDR_MAINFRAME,打開菜單資源。(8)在菜單“查看”與“幫助”之間添加一個(gè)“測(cè)試(&T)”菜單,該菜單項(xiàng)的資源標(biāo)識(shí)設(shè)為ID_TEST_DLG。(9)按Ctrl+W快捷鍵,打開MFCClassWizard對(duì)話框,在MessageMaps頁面中從“Classname”列表中選擇CMainFrame,在ObjectIDs列表中選擇ID_TEST_DLG,然后在Messages框中選擇COMMAND消息。4.3使用無模式對(duì)話框單擊[AddFunction]按鈕或雙擊COMMAND消息,出現(xiàn)“AddMemberFunction”對(duì)話框,取系統(tǒng)默認(rèn)的函數(shù)名OnTestDlg,并在此成員函數(shù)中添加下列代碼:voidCMainFrame::OnTestDlg(){
CSecondDlg*pDlg=newCSecondDlg; //使用new為對(duì)分配內(nèi)存空間
pDlg->Create(IDD_DIALOG_SECOND); //創(chuàng)建對(duì)話框
pDlg->ShowWindow(SW_NORMAL);//顯示對(duì)話框}代碼中,Create可用來以一個(gè)對(duì)話框資源來創(chuàng)建對(duì)話框, ShowWindow是一個(gè)CWnd成員函數(shù),用來顯示對(duì)話框, SW_NORMAL是用來指定將窗口顯示成一般常用的狀態(tài)。4.3使用無模式對(duì)話框在文件MainFrm.cpp前面添加CSecondDlg類的文件包含#include"MainFrm.h"#include"SecondDlg.h"編譯并運(yùn)行。在應(yīng)用程序菜單上,多次選擇“測(cè)試”
“對(duì)話框”菜單項(xiàng),將會(huì)在同一個(gè)位置中出現(xiàn)多個(gè)對(duì)話框,拖動(dòng)這些對(duì)話框到適當(dāng)位置,如圖:這就是無模式對(duì)話框的效果,從上述示例可以看出:模式和無模式對(duì)話框在用編輯器設(shè)計(jì)和使用MFCClassWizard創(chuàng)建用戶對(duì)話框類的方法是一致的,但在對(duì)話框的創(chuàng)建和退出的方式是不同的。3.4.1通用對(duì)話框
表MFC的通用對(duì)話框?qū)υ捒蛴?/p>
途CColorDialog顏色對(duì)話框,允許用戶選擇或創(chuàng)建顏色CFileDialog文件對(duì)話框,允許用戶打開或保存一個(gè)文件CFindReplaceDialog查找替換對(duì)話框,允許用戶查找或替換指定字符串CPageSetupDialog頁面設(shè)置對(duì)話框,允許用戶設(shè)置頁面參數(shù)CFontDialog字體對(duì)話框,允許用戶從列出的可用字體中選擇一種字體CPrintDialog打印對(duì)話框,允許用戶設(shè)置打印機(jī)的參數(shù)及打印文檔這些對(duì)話框都有一個(gè)共同特點(diǎn):它們都從用戶獲取信息,但并不對(duì)信息作處理。3.4.1通用對(duì)話框選定一個(gè)文件后,單擊[打開]按鈕,就會(huì)彈出一個(gè)消息對(duì)話框,顯示該文件的全路徑名稱。voidCMainFrame::OnTestDlg(){CStringfilter; filter=“文本文件(*.txt)|*.txt|C++文件 (*.h,*.cpp)|*.h;*.cpp||"; CFileDialogdlg(TRUE,NULL,NULL, OFN_HIDEREADONLY,filter); if(dlg.DoModal()==IDOK){ CStringstr; str=dlg.GetPathName(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年份3月特許經(jīng)營(yíng)加盟商客戶數(shù)據(jù)隱私保護(hù)協(xié)議修訂版
- DB11 T 384.16-2009 圖像信息管理系統(tǒng)技術(shù)規(guī)范 第16部分 視頻圖像字符疊加要求
- 2025春滬科版初中物理八年級(jí)下冊(cè)教學(xué)課件 第七章 第1節(jié) 牛頓第一定律 第1課時(shí)
- 工傷賠償協(xié)議書才有效
- 中醫(yī)藥大學(xué)合作協(xié)議班
- 2025域名購買與轉(zhuǎn)讓協(xié)議合同
- 《費(fèi)用與籌劃:稅收優(yōu)惠政策深度解析》課件
- 2025年度首季度離婚后腦波控制設(shè)備數(shù)據(jù)歸屬備忘錄
- 二零二五電商合作經(jīng)營(yíng)協(xié)議書
- 二零二五國(guó)際貿(mào)易合同中的所有權(quán)轉(zhuǎn)移問題
- 污水處理系統(tǒng)工程合同范本
- 路基石方破碎開挖專項(xiàng)施工方案
- 德能勤績(jī)廉個(gè)人總結(jié)的
- 二年級(jí)美術(shù)上冊(cè)課件 《3.我的手印畫》 贛美版 (共18張PPT)
- Q∕SY 126-2014 油田水處理用緩蝕阻垢劑技術(shù)規(guī)范
- GB∕T 3216-2016 回轉(zhuǎn)動(dòng)力泵 水力性能驗(yàn)收試驗(yàn) 1級(jí)、2級(jí)和3級(jí)
- 電子電氣評(píng)估規(guī)范-最新
- 全國(guó)青少年機(jī)器人技術(shù)等價(jià)考試三級(jí)全套課件
- 黑布林繪本 Dad-for-Sale 出售爸爸課件
- 腹腔鏡下肝葉切除術(shù)(實(shí)用課件)
- 三菱M70數(shù)控系統(tǒng)以太網(wǎng)應(yīng)用
評(píng)論
0/150
提交評(píng)論