第3章對(duì)話框ppt課件_第1頁
第3章對(duì)話框ppt課件_第2頁
第3章對(duì)話框ppt課件_第3頁
第3章對(duì)話框ppt課件_第4頁
第3章對(duì)話框ppt課件_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第第3章章 對(duì)話框?qū)υ捒?.1 創(chuàng)建對(duì)話框創(chuàng)建對(duì)話框 例例Ex_DlgDemo 運(yùn)用導(dǎo)游創(chuàng)建對(duì)話框運(yùn)用程序運(yùn)用導(dǎo)游創(chuàng)建對(duì)話框運(yùn)用程序 (1) 選擇選擇“文件文件“新建菜單,在彈出的新建菜單,在彈出的“新建對(duì)新建對(duì)話框中選擇話框中選擇“工程頁面,選擇工程頁面,選擇MFC AppWizard(exe),在工程框中輸入工程名在工程框中輸入工程名Ex_DlgDemo。 3.1 創(chuàng)建對(duì)話框創(chuàng)建對(duì)話框 (2) 單擊確定按鈕,在出現(xiàn)的“Step 1對(duì)話框中選擇“根本對(duì)話(框)運(yùn)用程序類型,如下圖。(3) 單擊下一個(gè)按鈕,出現(xiàn)如圖(右)所示的對(duì)話框,允許用戶設(shè)置對(duì)話框的風(fēng)格及ActiveX控件等特點(diǎn)的支持。3

2、.1 創(chuàng)建對(duì)話框創(chuàng)建對(duì)話框(4) 單擊下一個(gè)按鈕出現(xiàn)如圖(左)所示的對(duì)話框,兩個(gè)方面的選項(xiàng)可供用戶選擇:一是在源文件中能否參與注釋用來引導(dǎo)用戶編寫程序代碼,另一是運(yùn)用動(dòng)態(tài)鏈接庫(kù)還是靜態(tài)鏈接庫(kù)。(5) 保管默許選項(xiàng),單擊下一個(gè)按鈕出現(xiàn)如圖(右)所示的對(duì)話框。3.1 創(chuàng)建對(duì)話框創(chuàng)建對(duì)話框(6) 單擊完成按鈕出現(xiàn)一個(gè)對(duì)話框,顯示出用戶在前面幾個(gè)步驟中作出的選擇內(nèi)容,單擊確定按鈕系統(tǒng)開場(chǎng)創(chuàng)建。(7) 單擊編譯工具條上的運(yùn)轉(zhuǎn)工具按鈕 或按快捷鍵Ctrl+F5,系統(tǒng)開場(chǎng)編連并運(yùn)轉(zhuǎn)生成的對(duì)話框運(yùn)用程序可執(zhí)行文件Ex_DlgDemo.exe,結(jié)果如下圖 3.1 創(chuàng)建對(duì)話框創(chuàng)建對(duì)話框1. 資源的分類資源的分類

3、創(chuàng)建一個(gè)默許的單文檔運(yùn)用程序工程創(chuàng)建一個(gè)默許的單文檔運(yùn)用程序工程Ex_SDI1,并其工程任務(wù)區(qū)窗口切換到并其工程任務(wù)區(qū)窗口切換到“ResourceView頁面,頁面,Ex_SDI1資源視圖:資源視圖:3.1 創(chuàng)建對(duì)話框創(chuàng)建對(duì)話框Visual C+ 6.0運(yùn)用的資源可分為以下幾類: 快捷鍵列表(Accelerator):一系列組合鍵的集合,被運(yùn)用程序用來引發(fā)一個(gè)動(dòng)作。 對(duì)話框(Dialog):含有按鈕、列表框、編輯框等各種控件的窗口。圖標(biāo)(Icon):代表運(yùn)用程序顯示在Windows桌面上的位,它同時(shí)有3232像素和1616像素兩種規(guī)格。 菜單(Menu):用戶經(jīng)過菜單完成運(yùn)用程序的大部分操作。

4、 字串表(String Table):運(yùn)用程序運(yùn)用的全局字符串或其他標(biāo)識(shí)符。 工具欄按鈕(Toolbar):工具欄外觀是以一系列具有一樣尺寸的位圖組成的 版本信息(Version):包含運(yùn)用程序的版本、用戶注冊(cè)碼等相關(guān)信息。3.1 創(chuàng)建對(duì)話框創(chuàng)建對(duì)話框 當(dāng)添加或創(chuàng)建資源或資源對(duì)象時(shí),系統(tǒng)會(huì)為其提供默許的稱號(hào),如IDR_MAINFRAME等。要遵照以下規(guī)那么: 2. 標(biāo)識(shí)符 (1) 在標(biāo)識(shí)符稱號(hào)中允許運(yùn)用字母az、AZ、09以及下劃線。(2) 標(biāo)識(shí)符稱號(hào)不區(qū)分大小寫字母,如new_idd與New_Idd是相 同的標(biāo)識(shí)符。(3) 不能以數(shù)字開頭,如8BIT是不合法的標(biāo)識(shí)符名。字符個(gè)數(shù)不得超越247

5、個(gè)。 Visual C+還提供了一些常用的定義標(biāo)識(shí)符稱號(hào)的前綴供用戶運(yùn)用、參考,每一個(gè)定義的標(biāo)識(shí)符都保管在運(yùn)用程序工程的Resource.h文件中,它的取值范圍為032767。3.1 創(chuàng)建對(duì)話框創(chuàng)建對(duì)話框 字符個(gè)數(shù)不得超越247個(gè)。除了上述規(guī)那么外,出于習(xí)慣,Visual C+還提供了一些常用的定義標(biāo)識(shí)符稱號(hào)的前綴供用戶運(yùn)用、參考,見表 標(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ì)

6、話框資源添加對(duì)話框資源 例例Ex_SDI 在單文檔程序中添加對(duì)話框資源在單文檔程序中添加對(duì)話框資源 創(chuàng)建一個(gè)默許的單文檔運(yùn)用程序工程創(chuàng)建一個(gè)默許的單文檔運(yùn)用程序工程Ex_SDI。 (1) 選擇選擇“插入插入“資源菜單,或按快捷鍵資源菜單,或按快捷鍵Ctrl+R翻開翻開“插入資源插入資源 對(duì)話框中看到資源列表中存在對(duì)話框中看到資源列表中存在Dialog項(xiàng),假設(shè)單擊項(xiàng),假設(shè)單擊Dialog項(xiàng)左邊的項(xiàng)左邊的“+號(hào),將展開對(duì)號(hào),將展開對(duì)話框資源的不同類型選項(xiàng),表列出各種類型的對(duì)話框資話框資源的不同類型選項(xiàng),表列出各種類型的對(duì)話框資源的不同用途。源的不同用途?!安迦胭Y源對(duì)話框插入資源對(duì)話框 :3.2.2

7、 添加對(duì)話框資源添加對(duì)話框資源 新建按鈕用來創(chuàng)建一個(gè)由“資源類型列表中指定類型的新資源。 定制按鈕是用來創(chuàng)建“資源類型列表中沒有的新類型的資源。 導(dǎo)入按鈕是用于將外部已有的位圖、圖標(biāo)、光標(biāo)或其他定制的 資源添加到當(dāng)前運(yùn)用程序中。 類類 型型說說 明明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_ME

8、DIUM一個(gè)中等大小的屬性頁,用于屬性對(duì)話框IDD_ PROPPAGE_SMALL一個(gè)小的屬性頁,用于屬性對(duì)話框3.2.2 添加對(duì)話框資源添加對(duì)話框資源(2) 對(duì)展開的不同類型的對(duì)話框資源不作任何選擇,選中“Dialog,單擊新建按鈕,系統(tǒng)就會(huì)自動(dòng)為當(dāng)前運(yùn)用程序添加了一個(gè)對(duì)話框資源。 3.2.2 添加對(duì)話框資源添加對(duì)話框資源 系統(tǒng)為對(duì)話框資源自動(dòng)賦給它一個(gè)默許標(biāo)識(shí)符稱號(hào) 運(yùn)用通用的對(duì)話框模板創(chuàng)建新的對(duì)話框資源。對(duì)話框的默許標(biāo)題為Dialog,有OK和Cancel兩個(gè)按鈕,這兩個(gè)按鈕的標(biāo)識(shí)符分別為IDOK和IDCANCEL。 對(duì)話框模板資源所在的窗口稱為對(duì)話框資源編輯,在這里可以經(jīng)過控件工具欄和

9、規(guī)劃工具欄向?qū)υ捒蛱砑雍鸵?guī)劃控件,并可設(shè)置對(duì)話框的屬性。 Visual C+6.0開發(fā)環(huán)境的工具欄具有“浮動(dòng)與“??抗δ?,圖中的控件工具欄是處于“浮動(dòng)形狀,通常將它拖放到窗口右側(cè),以便于操作。3.2.3 設(shè)置對(duì)話框?qū)傩栽O(shè)置對(duì)話框?qū)傩?在對(duì)話框模板處右擊鼠標(biāo),從彈出的快捷菜單中選擇“屬性菜單項(xiàng),出現(xiàn)如下圖的對(duì)話框?qū)傩源翱凇?對(duì)話框的屬性有General(普通)、Styles(風(fēng)格)、More Styles(更多)、Extended Styles(擴(kuò)展風(fēng)格)、MoreExtended Styles(更多擴(kuò)展風(fēng)格)等部分,這里僅引見最常用的General屬性。 3.2.3 設(shè)置對(duì)話框?qū)傩栽O(shè)置對(duì)話框?qū)?/p>

10、性對(duì)話框的對(duì)話框的General屬性屬性項(xiàng)項(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í)輸入或選擇指定的菜單資源Class name默認(rèn)值為無,它提供C/C+語言編程時(shí)所需要的對(duì)話框類名,對(duì)MFC類庫(kù)的資源文件來說,該項(xiàng)不被激活。 將添加對(duì)話框的General屬性進(jìn)展如下三點(diǎn)修正, 將對(duì)話框標(biāo)識(shí)符改成IDD_DIALOG_FIRST; 將對(duì)話框標(biāo)題改為“我的第一個(gè)對(duì)話框

11、; 單擊字體按鈕,經(jīng)過彈出的字體對(duì)話框?qū)?duì)話框內(nèi)的文本設(shè)置成“宋體,9 ,以使本人的對(duì)話框和Windows中的對(duì)話框堅(jiān)持外觀上的一致。 3.2.4 添加和規(guī)劃控件添加和規(guī)劃控件 1. 控件的添加控件的添加 對(duì)話框編輯器最初翻開時(shí),控件工具欄是隨之對(duì)話框編輯器最初翻開時(shí),控件工具欄是隨之出現(xiàn)的,利用出現(xiàn)的,利用 此工具欄中的各個(gè)按鈕可以順利完成此工具欄中的各個(gè)按鈕可以順利完成控件的添加。闡明了各控件的添加。闡明了各 個(gè)圖標(biāo)按鈕所對(duì)應(yīng)的控件類個(gè)圖標(biāo)按鈕所對(duì)應(yīng)的控件類型。型??丶倪x擇靜態(tài)文本組框復(fù)選框組合框程度滾動(dòng)條旋轉(zhuǎn)按鈕滑動(dòng)條列表視圖標(biāo)簽復(fù)合編輯月歷用戶定制工具靜態(tài)圖片編輯框按鈕單項(xiàng)選擇框列表

12、框垂直滾動(dòng)條進(jìn)展條熱鍵樹形視圖動(dòng)畫日期選擇IP地址組合框的擴(kuò)展3.2.4 添加和規(guī)劃控件添加和規(guī)劃控件對(duì)話框中添加一個(gè)控件的方法有以下幾種: 在控件工具欄中單擊某控件,此時(shí)鼠標(biāo)箭頭在 對(duì)話框內(nèi)變成“十字外形;在對(duì)話框指定位置單擊鼠標(biāo)左鍵,那么此控件被添加到對(duì)話框的相應(yīng)位,再拖動(dò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)左鍵,新添加的控件立刻出如

13、今對(duì)話框中。3.2.4 添加和規(guī)劃控件添加和規(guī)劃控件 控件的刪除、復(fù)制和規(guī)劃操作普通都要先選取控件,假設(shè)選取單個(gè)控件,那么可以以下方法: 鼠標(biāo)直接選取。首先保證在控件工具欄中的選擇按鈕( )是被選中的,然后挪動(dòng)鼠標(biāo)指針至指定的控件上,單擊鼠標(biāo)左鍵即可。 用助記符來選取。假設(shè)控件的標(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 添加和規(guī)劃控件添加和規(guī)劃控件 對(duì)于多個(gè)控件的選

14、取,可采用以下方法: 先在對(duì)話框內(nèi)按住鼠標(biāo)左鍵不放,拖出一個(gè)大的虛框,然后釋放鼠標(biāo),那么被虛框所包圍的控件將被選取。 先按住Shift鍵不放,然后用鼠標(biāo)選取控件,直到所需求的多個(gè)控件選取之后再釋放Shift鍵。 需求留意的是:1 單個(gè)控件被選取后,選擇框上還有幾個(gè)藍(lán)色實(shí)心小方塊,拖動(dòng)它可改動(dòng)控件的大小。2 多個(gè)控件被選取后,其中只需一個(gè)控件的選擇框有幾個(gè)藍(lán)色實(shí)心小方塊,這個(gè)控件稱為主要控件的小方塊。(b)(a)3.2.4 添加和規(guī)劃控件添加和規(guī)劃控件3. 控件的刪除、復(fù)制和規(guī)劃控件的刪除、復(fù)制和規(guī)劃 單個(gè)控件或多個(gè)控件被選取后,按方向鍵或用單個(gè)控件或多個(gè)控件被選取后,按方向鍵或用鼠標(biāo)拖動(dòng)控件的

15、選擇框可挪動(dòng)控件。在鼠標(biāo)拖動(dòng)過鼠標(biāo)拖動(dòng)控件的選擇框可挪動(dòng)控件。在鼠標(biāo)拖動(dòng)過程中還按住程中還按住Ctrl鍵那么復(fù)制控件。按鍵那么復(fù)制控件。按Del鍵可將選取鍵可將選取的控件刪除。對(duì)控件的規(guī)劃,對(duì)話框編輯器中提供的控件刪除。對(duì)控件的規(guī)劃,對(duì)話框編輯器中提供了控件規(guī)劃工具欄可以自動(dòng)地陳列對(duì)話框內(nèi)的控件,了控件規(guī)劃工具欄可以自動(dòng)地陳列對(duì)話框內(nèi)的控件,并能改動(dòng)控件的大小。并能改動(dòng)控件的大小。 靠齊上邊 左右間隔相等 大小一樣靠齊左邊上下居中寬度一樣 顯示標(biāo)尺 靠齊右邊 左右居中 高度一樣測(cè)試對(duì)話框 靠齊下邊 上下間隔相等顯示網(wǎng)格3.2.4 添加和規(guī)劃控件添加和規(guī)劃控件 規(guī)劃工具相對(duì)應(yīng)的菜單命令在“編排菜

16、單下,而且大部分命令均有相應(yīng)的快捷鍵。 “編排菜單不是在Visual C+ 6.0開發(fā)環(huán)境一開場(chǎng)就出現(xiàn)的,而是隨著對(duì)話框編輯器的翻開而顯示的。值得留意的是: 大多數(shù)布置控件的命令運(yùn)用前,都需求用戶選取多個(gè)控件,且“主要控件起到了關(guān)鍵作用。只改動(dòng)其它控件的大小,并與“主要控件的尺寸一致。設(shè)置的方法是按住Ctrl或Shift鍵,然后用鼠標(biāo)單擊所要指定的控件即可。 為了便于用戶在對(duì)話框內(nèi)準(zhǔn)確定位各個(gè)控件,系統(tǒng)還提供了網(wǎng)格、標(biāo)尺等輔助工具。一旦網(wǎng)格顯示,添加或挪動(dòng)控件時(shí)都將自動(dòng)定位在網(wǎng)格線上。3.2.4 添加和規(guī)劃控件添加和規(guī)劃控件 4. 測(cè)試對(duì)話框測(cè)試對(duì)話框 “編排菜單下的編排菜單下的Test命令或

17、規(guī)劃工具欄上的測(cè)試按鈕命令或規(guī)劃工具欄上的測(cè)試按鈕 是用來模擬所編輯的對(duì)話框的運(yùn)轉(zhuǎn)情況,協(xié)助用戶檢驗(yàn)是用來模擬所編輯的對(duì)話框的運(yùn)轉(zhuǎn)情況,協(xié)助用戶檢驗(yàn) 對(duì)話框能否符合用戶的設(shè)計(jì)要求以及控件功能能否有效對(duì)話框能否符合用戶的設(shè)計(jì)要求以及控件功能能否有效 等。如圖等。如圖 (右下右下) 右擊添加的控件,從快捷菜單中選擇“屬性,出現(xiàn)如 圖(左上) 3.2.5 創(chuàng)建對(duì)話框類創(chuàng)建對(duì)話框類 在運(yùn)用程序中運(yùn)用添加的對(duì)話框須先為該對(duì)話框模板創(chuàng)建一個(gè)用戶對(duì)話框類。在對(duì)話框資源模板的空白區(qū)域(沒有其他元素或控件)內(nèi)雙擊鼠標(biāo),將彈出對(duì)話框 單擊OK按鈕,彈出右圖所示的對(duì)話框。 在Name框中輸入類名CFirstDlg,

18、單擊OK按鈕,一個(gè)基于對(duì)話框資源模板的用戶對(duì)話框類CFirstDlg就創(chuàng)建好了。此時(shí)出現(xiàn)MFC ClassWizard(MFC類導(dǎo)游)對(duì)話框。 3.2.6 添加對(duì)話框代碼添加對(duì)話框代碼 在MFC ClassWizard對(duì)話框中,可以看到“Class name組合框曾經(jīng)是CFirstDlg。 單擊Add Function按鈕或雙擊WM_INITDIALOG音訊,MFC ClassWizard自動(dòng)為CFirstDlg類添加OnInitDialog函數(shù)。 在Member functions表框中選擇剛添加 的OnInitDialog,單擊Edit Code 將出現(xiàn)函數(shù)代碼編輯窗口,在函數(shù)中添碼:BO

19、OL CFirstDlg:OnInitDialog() CDialog:OnInitDialog(); Static*pWnd=(CStatic*)GetDlgItem (IDC_STATIC_1); pWnd-SetWindowText (“這是我的 第一個(gè)對(duì)話框!); return TRUE; / return TRUE unless you set the focus to a control 3.2.7 在程序中運(yùn)用對(duì)話框在程序中運(yùn)用對(duì)話框 (1) 在工程任務(wù)區(qū)窗口中選擇ResourceView頁面,雙擊資源“Menu項(xiàng)中的IDR_MAINFRAME,那么菜單編輯器窗口出如今主界面的右

20、邊,相應(yīng)的Ex_SDI項(xiàng)目的菜單資源被顯示出來,在菜單的最后一項(xiàng),Visual C+為用戶留出了一個(gè)空位置,用來輸入新的菜單項(xiàng),如圖 3.2.7 在程序中運(yùn)用對(duì)話框在程序中運(yùn)用對(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 在程序中運(yùn)用對(duì)話框在程序中運(yùn)用對(duì)話框 (3) 單擊菜單屬性對(duì)話框中的“保管可見(Keep Visibl

21、e)按鈕,使此屬性對(duì)話框不斷可見,以方便操作。單擊“測(cè)試菜單項(xiàng)下方的空位置,在屬性對(duì)話框中,輸入標(biāo)題“對(duì)話框(&D),在ID框輸入該菜單項(xiàng)的資源標(biāo)識(shí);_TEST_DLG,結(jié)果如下圖,單擊屬性對(duì)話框右上角的封鎖按鈕。 3.2.7 在程序中運(yùn)用對(duì)話框在程序中運(yùn)用對(duì)話框 (4) 用鼠標(biāo)將新添加的菜單項(xiàng)拖到“查看和“協(xié)助菜單項(xiàng) 之間,結(jié)果如下圖。 菜單項(xiàng)“對(duì)話框拖放后的位置(5) 選擇“查看“建立類導(dǎo)游菜單命令或直接按Ctrl+W快捷鍵,那么出現(xiàn)MFC ClassWizard對(duì)話框,該對(duì)話框會(huì)自動(dòng)切換到Message Maps頁面。(6) 從“Class name組合框中選擇CMainFram

22、e,在Object Ids列表中選擇ID_TEST_DLG,然后在Messages框中選擇COMMAND音訊。 3.2.7 在程序中運(yùn)用對(duì)話框在程序中運(yùn)用對(duì)話框 (7) 單擊Add Function按鈕或雙擊COMMAND音訊,出現(xiàn)“Add Member Function對(duì)話框以輸入成員函數(shù)的稱號(hào)。系統(tǒng)默許的函數(shù)名為OnTestDlg,如下圖。該函數(shù)是對(duì)菜單項(xiàng)ID_TEST_DLG的映射,也就是說,當(dāng)在運(yùn)用程序運(yùn)轉(zhuǎn)時(shí),用戶選擇“對(duì)話框,那么該函數(shù)OnTestDlg被調(diào)用,執(zhí)行函數(shù)中的代碼。 3.2.7 在程序中運(yùn)用對(duì)話框在程序中運(yùn)用對(duì)話框 單擊OK按鈕,在ClassWizard的“Member

23、 functions列表中將列出新添加的成員函數(shù)。選擇此函數(shù),單擊Edit Code按鈕(或直接在函數(shù)名雙擊鼠標(biāo)),在此成員函數(shù)中添加下列代碼:void CMainFrame:OnTestDlg() CFirstDlg dlg;/ 定義對(duì)話框類對(duì)象 dlg.DoModal();/ 顯示對(duì)話框 代碼中,DoModal是CDialog基類成員函數(shù),它是用來顯示和終止方式對(duì)話框。3.2.7 在程序中運(yùn)用對(duì)話框在程序中運(yùn)用對(duì)話框 在OnTestDlg函數(shù)的實(shí)現(xiàn)文件MainFrm.cpp的前面添加 CFirstDlg類的頭文件包含,即:#include Ex_SDI.h#include MainFrm.

24、h#include FirstDlg.h“(10) 編譯并運(yùn)轉(zhuǎn)。在運(yùn)用程序菜單上,選擇“測(cè)試 “對(duì)話框菜單項(xiàng),將出現(xiàn)如圖的對(duì)話框,這個(gè)對(duì)話框就是剛才添加的對(duì)話框。 4.3 運(yùn)用無方式對(duì)話框 1. 方式對(duì)話框方式對(duì)話框 所謂所謂“方式對(duì)話框是指當(dāng)對(duì)話框被彈出,用戶必需在方式對(duì)話框是指當(dāng)對(duì)話框被彈出,用戶必需在對(duì)話框中作出相應(yīng)的操作,在退出對(duì)話框之前,對(duì)話框所對(duì)話框中作出相應(yīng)的操作,在退出對(duì)話框之前,對(duì)話框所在的運(yùn)用程序不能繼續(xù)執(zhí)行。在的運(yùn)用程序不能繼續(xù)執(zhí)行。 普通情況下,方式對(duì)話框會(huì)有普通情況下,方式對(duì)話框會(huì)有OK(確定確定)和和Cancel(取取消消)按鈕。單出按鈕。單出OK按鈕,系統(tǒng)認(rèn)定用戶

25、在對(duì)話框中的選擇按鈕,系統(tǒng)認(rèn)定用戶在對(duì)話框中的選擇或輸入有效,對(duì)話框退出;單擊或輸入有效,對(duì)話框退出;單擊Cancel按鈕,對(duì)話框中按鈕,對(duì)話框中的選擇或輸入無效,對(duì)話框退出,程序恢復(fù)原有形狀。的選擇或輸入無效,對(duì)話框退出,程序恢復(fù)原有形狀。 方式對(duì)話框的運(yùn)用范圍較廣,上面例如中的對(duì)話框和平方式對(duì)話框的運(yùn)用范圍較廣,上面例如中的對(duì)話框和平常所見到的大多數(shù)對(duì)話框都是方式對(duì)話框。常所見到的大多數(shù)對(duì)話框都是方式對(duì)話框。 4.3 運(yùn)用無方式對(duì)話框所謂“無方式對(duì)話框是指當(dāng)對(duì)話框被彈出后,不斷保管在屏幕上,用戶可繼續(xù)在對(duì)話框所在的運(yùn)用程序中進(jìn)展其它操作;當(dāng)需求運(yùn)用對(duì)話框時(shí),只需象激活普通窗口一樣單擊對(duì)話框

26、所在的區(qū)域即可激活。例Ex_Modeless 創(chuàng)建并運(yùn)用無方式對(duì)話框 用MFC AppWizard(exe)創(chuàng)建一個(gè)默許的單文檔運(yùn)用程序x_Modeless。(2) 在該工程中添加一個(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ì)話框無方式對(duì)話框4.3 運(yùn)用無方式對(duì)話框 按Ctrl+W快捷鍵翻開MFC ClassWizard,從“Class name列表中選擇CSecondDlg,在IDs列表中選擇IDOK, 是對(duì)

27、話框中OK 按鈕的標(biāo)識(shí)符,然后在Messages框中 選擇BN_CLICKED(單擊按鈕)音訊,單擊Add Function 按鈕或雙擊BN_CLICKED音訊,出現(xiàn)“Add Member Function對(duì)話框以輸入成員函數(shù)的稱號(hào),保管系統(tǒng)默 認(rèn)的函數(shù)名為OnOK,如下圖。4.3 運(yùn)用無方式對(duì)話框(5) 修正CSecondDlg:OnOK函數(shù)中的代碼。void CSecondDlg:OnOK() / 添加其他代碼運(yùn)用戶輸入對(duì)話框的數(shù)據(jù)有效 DestroyWindow(); / 終止對(duì)話框顯示 delete this; / 刪除對(duì)話框,釋放內(nèi)存空間代碼中,DestroyWindow是對(duì)話框基類

28、CWnd的一個(gè)成員函數(shù),用來終止窗口。 添加Cancel按鈕(標(biāo)識(shí)符為IDCANCEL)的BN_CLICKED音訊映射,并修正其映射函數(shù)CSecondDlg:OnCancel的代碼。void CSecondDlg:OnCancel() / 單擊Cancel(取消)按鈕 DestroyWindow(); delete this; 4.3 運(yùn)用無方式對(duì)話框 在工程任務(wù)區(qū)窗口中選擇ResourceView頁面,雙擊資源“Menu項(xiàng)中的IDR_MAINFRAME,翻開菜單資源。(8) 在菜單“查看與“協(xié)助之間添加一個(gè)“測(cè)試(&T)菜單,該菜單項(xiàng)的資源標(biāo)識(shí)設(shè)為ID_TEST_DLG。(9) 按C

29、trl+W快捷鍵,翻開MFC ClassWizard對(duì)話框,在Message Maps頁面中從“Class name列表中選擇CMainFrame,在Object IDs列表中選擇ID_TEST_DLG,然后在Messages框中選擇COMMAND音訊。 4.3 運(yùn)用無方式對(duì)話框 單擊Add Function按鈕或雙擊COMMAND音訊,出現(xiàn)“Add Member Function對(duì)話框,取系統(tǒng)默許的函數(shù)名OnTestDlg,并在此成員函數(shù)中添加以下代碼:void CMainFrame:OnTestDlg() CSecondDlg *pDlg = new CSecondDlg; / 運(yùn)用new

30、為對(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是用來指定將窗口顯示成普通常用的形狀。 4.3 運(yùn)用無方式對(duì)話框 在文件MainFrm.cpp前面添加CSecondDlg類的文件包含 #include MainFrm.h #include SecondDlg.h 編譯并運(yùn)轉(zhuǎn)。在運(yùn)用程序菜單上,多次選擇“測(cè)試 “對(duì) 話框菜單項(xiàng),將會(huì)在

31、同一個(gè)位置中出現(xiàn)多個(gè)對(duì)話框,拖動(dòng)這 些對(duì)話框到適當(dāng)位置,如圖:這就是無方式對(duì)話框的效果,從上述例如可以看出:方式和無方式對(duì)話框在用編輯器設(shè)計(jì)和運(yùn)用MFC ClassWizard創(chuàng)建用戶對(duì)話框類的方法是一致的,但在對(duì)話框的創(chuàng)建和退出的方式是不同的。 3.4.1 通用對(duì)話框通用對(duì)話框 表表 MFC的通用對(duì)話框的通用對(duì)話框?qū)υ捒驅(qū)υ捒蛴糜?途途CColorDialog顏色對(duì)話框,允許用戶選擇或創(chuàng)建顏色CFileDialog文件對(duì)話框,允許用戶打開或保存一個(gè)文件CFindReplaceDialog查找替換對(duì)話框,允許用戶查找或替換指定字符串CPageSetupDialog頁面設(shè)置對(duì)話框,允許用戶設(shè)置頁

32、面參數(shù)CFontDialog字體對(duì)話框,允許用戶從列出的可用字體中選擇一種字體CPrintDialog打印對(duì)話框,允許用戶設(shè)置打印機(jī)的參數(shù)及打印文檔這些對(duì)話框都有一個(gè)共同特點(diǎn):它們都從用戶獲取信息,但并不對(duì)信息作處置。 3.4.1 通用對(duì)話框通用對(duì)話框 選定一個(gè)文件后,單擊翻開按鈕,就會(huì)彈出一個(gè)音訊對(duì)話框,顯示該文件的全途徑稱號(hào)。void CMainFrame:OnTestDlg() CString filter; filter = “文本文件(*.txt)|*.txt|C+文件 (*.h,*.cpp)|*.h;*.cpp|; CFileDialog dlg (TRUE, NULL, NULL, OFN_HIDEREADONLY, filter); if (dlg.DoModal () = IDOK) CString str; str = dlg.GetPathName(); AfxM

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論