



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
前兩講中雞啄米為大家講解了如何創(chuàng)建對話框資源。創(chuàng)建好對話框資源后要做的就是生成對話框類了。雞啄米再聲明下,生成對話框類主要包括新建對話框類、添加控件變量和控件的消息處理函數(shù)等。因為雞啄米給大家的例程Addition是基于對話框的程序,所以程序自動創(chuàng)建了對話框模板IDD_ADDITION_DIALOG,并自動生成了對話框類CAdditionDlg,它是從CDialogEx類派生的。大家用過VC++6.0的可能記得,我們定義的對話框類都是從CDialog類派生的,但在VS2010中,一般對話框類都是繼承自CDialogEx類。創(chuàng)建對話框類如果是自己新添加的對話框模板,怎樣為它創(chuàng)建對話框類呢?1?首先雞啄米就按第六講:創(chuàng)建對話框模板和修改對話框?qū)傩灾姓f的那樣,在ResourceView的"Dialog”節(jié)點上右鍵,然后在右鍵菜單中選擇"InsertDialog”創(chuàng)建一個新的對話框模板,ID就使用默認(rèn)的IDD_DIALOG1。在中間區(qū)域會顯示新建的對話框模板,然后選中此對話框模板,點右鍵,在右鍵菜單中選擇AddClass。11E<?Addri&Mi.rc-hJQOHt c-Dwlog"AddhiwIKgdxpiAddihoo.rcrDD.OlAUOGl-11E<?Addri&Mi.rc-hJQOHt c-Dwlog"AddhiwIKgdxpiAddihoo.rcrDD.OlAUOGl-jlljPkIbtjj■■丁Additlflfi』Addition.Fr*J」Oil如■:嘰幅呦呦JEM_iEPiri3M.J啦JICCMI」SuTngiFflblpJVtrs^Mi*KimiQrttJftopyClrlKOH4-VXQdvirEBddt■■曜iH:—Irser!fetmXCorrtmJ-.jJdOtn-AddVbhbJ^--巒□事■W-jiFd_ShituXM£匸EEAligriMtQtI3? tl旳Afrwi4JlgnT^ptCiP-SiwhtUpjSLrrewClwfMrifinenksGiltM3.選擇“AddClass”后會彈出一個對話框,在對話框中'Classname”下的編輯框中寫入自定義的類名就可以了,例如CMyDialog。4.最后點"Finish”完成。最終你就可以在ClassView中看到新生成的對話框類CMyDialog了,并且在SolutionExplorer中有相應(yīng)的MyDialog.h頭文件和MyDialog.cpp源文件生成。CMyDialog類同樣派生于CDialogEx類。注意,一般類名都以C打頭,又比如,CTestDlg。為對話框中的控件添加變量在上一講中為對話框添加了幾個控件,包括三個靜態(tài)文本框,三個編輯框,一個按鈕控件。程序自動生成的Cancel按鈕保留,作為退出按鈕,而0K按鈕刪除掉了。靜態(tài)文本框只是為了說明后面緊跟的編輯框中數(shù)據(jù)的意義,是被加數(shù)、加數(shù)還是和,所以它們是不會變的,我們就不為它們添加變量了。按鈕控件是用來操作的,這里也不為它們添加變量。編輯框中的數(shù)據(jù)可能會經(jīng)常變化,有必要為它們每個控件關(guān)聯(lián)一個變量。首先為被加數(shù)的編輯框IDC_SUMMAND_EDIT添加變量。1?在編輯框上點右鍵,在右鍵菜單中選擇“AddVariable”。彈出添加成員變量的向?qū)υ捒?。我們想為其添加值變量而不是控件變量,所以對話框?Category”下的組合框中選擇Value。"Variabletype”下的組合框此時默認(rèn)選中的是CString”,CString是字符串類,顯然不能進(jìn)行加法運(yùn)算。我們可以選擇double、float、int等。這里我們選擇double,即編輯框關(guān)聯(lián)一個double類型的變量。在“Variablename”中寫入自定義的變量名。雞啄米為其取名m_editSummand。
5.點“FiniS完成。注意,類的成員變量名一般以m_打頭,以標(biāo)識它是一個成員變量。參照此方法,再分別為加數(shù)的編輯框IDD_ADDEND_EDIT添加double型變量m_editAddend、和的編輯框IDD_SUM_EDIT添加double型變量m_editSum。對話框類的數(shù)據(jù)交換和檢驗在程序運(yùn)行界面中,用戶往往會改變控件的屬性,例如,在編輯框中輸入字符串,或者改變組合框的選中項,又或者改變復(fù)選框的選中狀態(tài)等??丶膶傩愿淖兒驧FC會相應(yīng)修改控件關(guān)聯(lián)變量的值。這種同步的改變是通過MFC為對話框類自動生成的成員函數(shù)DoDataExchange()來實現(xiàn)的,這也叫做對話框的數(shù)據(jù)交換和檢驗機(jī)制。我們?yōu)槿齻€編輯框添加了變量以后,在AdditionDlg.cpp中CAdditionDlg的DoDataExchange()函數(shù)的函數(shù)體中多了三條DDX_Text調(diào)用語句。下面是函數(shù)體代碼和雞啄米添加的注釋。C++代碼voidCAdditionDlg::DoDataExchange(CDataExchange*pDX){//處理MFC默認(rèn)的數(shù)據(jù)交換4.CDialogEx::DoDataExchange(pDX);4.//處理控件IDC_SUMMAND_EDIT和變量m_editSummand之間的數(shù)據(jù)交換DDX_Text(pDX,IDC_SUMMAND_EDIT,m_editSummand);//處理控件IDC_ADDEND_EDIT和變量m_editAddend之間的數(shù)據(jù)交換DDX_Text(pDX,IDC_ADDEND_EDIT,m_editAddend);//處理控件IDC_SUM_EDIT和變量m_editSum之間的數(shù)據(jù)交換DDX_Text(pDX,IDC_SUM_EDIT,m_editSum);}雞啄米再以Addition程序為例簡單說下數(shù)據(jù)交換機(jī)制。如果我們在程序運(yùn)行界面中輸入被加數(shù),則通過CAddition的DoDataExchange()函數(shù)可以將輸入的值保存到m_editSummand變量中,反之如果程序運(yùn)行中修改了變量m_editSummand的值,則通過CAddition的DoDataExchange()函數(shù)也可以將新的變量值顯示到被加數(shù)的編輯框中。但是這種數(shù)據(jù)交換機(jī)制中,DoDataExchange()并不是被自動調(diào)用的,而是需要我們在程序中調(diào)用CDialogEx::UpdateData()函數(shù),由UpdateData()函數(shù)再去自動調(diào)用DoDataExchange()的。CDialogEx::UpdateData()函數(shù)的原型為:BOOLUpdateData(BOOLbSaveAndValidate=TRUE);參數(shù):bSaveAndValidate用于指示數(shù)據(jù)傳輸?shù)姆较颍琓RUE表示從控件傳給變量,F(xiàn)ALSE表示從變量傳給控件。默認(rèn)值是TRUE,即從控件傳給變量。返回值:CDialogEx::
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 股東合作協(xié)議及條款詳解
- 2025年長沙貨車從業(yè)資格證模擬考試
- 3D打印技術(shù)與設(shè)備應(yīng)用指南
- 2025年深圳道路運(yùn)輸從業(yè)資格證考哪些項目
- 個人挖機(jī)機(jī)械租賃合同5篇
- 安全性評價技術(shù)服務(wù)合同
- 2025年寧夏道路貨運(yùn)駕駛員從業(yè)資格證考試題庫完整
- 建筑工程木工合同
- 辦公信息化解決方案報告
- 交通意外事故賠償協(xié)議書
- 三年級語文 溪居即事市賽一等獎
- 2024年山東化工職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 《新病歷書寫規(guī)范》課件
- 2024年中小學(xué)生守則修訂版
- 博覽會展位裝修及布展投標(biāo)方案技術(shù)標(biāo)
- 顧客提問的問題100條
- 肝膿腫教學(xué)查房課件
- 跳繩之雙腳跳教案
- 拇外翻護(hù)理課件
- 六年級英語教學(xué)隨筆5篇
- 讀書分享交流會《從一到無窮大》課件
評論
0/150
提交評論