




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、于東2015,第2周2021/8/14控件是一些行為標(biāo)準(zhǔn)化了的窗口元素。Windows提供了一組標(biāo)準(zhǔn)控件。在MFC中,為每種控件實(shí)現(xiàn)了一個(gè)類。課程內(nèi)只講編程思想以及一些通用的方法具體控件的使用方法,看視頻自學(xué)22021/8/1432021/8/14思考要實(shí)現(xiàn)的功能控件布局控件屬性修改通過類向?qū)砑涌丶兞客ㄟ^類向?qū)砑涌丶㈨憫?yīng)函數(shù)手動(dòng)添加控件輔助變量或函數(shù)=完成程序框架=完善添加的函數(shù)調(diào)試測試42021/8/14每種控件都有自己的若干屬性。在控件右鍵菜單中可以看到屬性頁5按鈕屬性頁的“常規(guī)”項(xiàng)編輯框?qū)傩皂摰摹皹邮健表?xiàng)2021/8/14每個(gè)控件必須有唯一的“ID”,一般不需要改ID會(huì)以宏的形
2、式自動(dòng)定義并記錄在resource.h中在后面編程中,控件的ID也作為該控件使用的唯一標(biāo)識(shí)6我們添加的控件的ID2021/8/14通過類向?qū)В梢蕴娲斯砭帉懖糠滞ㄓ么a7通過快捷鍵 Ctrl+WCtrl+W激活一定要記住2021/8/14只用到前兩個(gè)標(biāo)簽頁Message Maps : 向類中添加消息響應(yīng)函數(shù)Member Variables: 向類中添加并綁定成員變量82021/8/1491.選擇Project2.選擇要編輯的類3.選擇要編輯的控件ID4.選擇要添加的控件消息5.點(diǎn)擊進(jìn)入代碼編寫處2021/8/14消息響應(yīng)函數(shù)以類的成員函數(shù)形式添加MFC的類與普通C+類最大的區(qū)別,一是有復(fù)雜
3、的繼承體系,第二就是有“消息響應(yīng)”代碼。下節(jié)課詳細(xì)講解。本課中,牢記并熟練使用以上步驟即可。102021/8/14MFC編程中,我們通常以繼承方式使用MFC中的類。 比如,標(biāo)準(zhǔn)的比如,標(biāo)準(zhǔn)的CdialogCdialog類中,沒有包括任何功能代碼,直接類中,沒有包括任何功能代碼,直接使用該類對(duì)象,創(chuàng)建的是一個(gè)空對(duì)話框。使用該類對(duì)象,創(chuàng)建的是一個(gè)空對(duì)話框。 對(duì)對(duì)CdialogCdialog編程,由于無法修改編程,由于無法修改MFCMFC源碼,因此從源碼,因此從CdialogCdialog中中派生一個(gè)子類,比如叫做派生一個(gè)子類,比如叫做CMyDialogCMyDialog 在在CMyDialogCM
4、yDialog中實(shí)現(xiàn)我們自己想要做的功能代碼,這就是中實(shí)現(xiàn)我們自己想要做的功能代碼,這就是MFCMFC編程編程問題:對(duì)于標(biāo)準(zhǔn)控件,是否也需要這樣做?112021/8/14答案: 如果我們不需要對(duì)控件的外觀和功能做改動(dòng),就不需要對(duì)如果我們不需要對(duì)控件的外觀和功能做改動(dòng),就不需要對(duì)其進(jìn)行派生,可以直接使用。否則,就需要派生一個(gè)控件其進(jìn)行派生,可以直接使用。否則,就需要派生一個(gè)控件類,來自己寫代碼類,來自己寫代碼比如,我要把編輯框當(dāng)做按鈕來使比如,我要把編輯框當(dāng)做按鈕來使用,或者要做一個(gè)三角形的按鈕(很少)用,或者要做一個(gè)三角形的按鈕(很少)那么問題就來了:如何對(duì)控件編程? MFCMFC中,在界面上
5、布局變量后,程序僅生成了一個(gè)中,在界面上布局變量后,程序僅生成了一個(gè)IDID與之與之對(duì)應(yīng),控件本身還沒有出現(xiàn)在代碼中。對(duì)應(yīng),控件本身還沒有出現(xiàn)在代碼中。 需要通過組合的方式,在現(xiàn)有的需要通過組合的方式,在現(xiàn)有的CMyDialogCMyDialog類中,添加控類中,添加控件類變量,來實(shí)現(xiàn)對(duì)控件的編程。件類變量,來實(shí)現(xiàn)對(duì)控件的編程。122021/8/14131.選擇Project2.選擇要編輯的類3.選擇要編輯的控件ID4.點(diǎn)擊添加變量彈出下一頁2021/8/14141.起一個(gè)名字4.點(diǎn)OK確定2.選擇變量類型(稍后解釋)3.選擇變量的數(shù)據(jù)類型2021/8/14Category有兩種:value和
6、control ControlControl類型,就是添加控件對(duì)應(yīng)的類型,就是添加控件對(duì)應(yīng)的MFCMFC類對(duì)象類對(duì)象 ValueValue類型,是添加與控件綁定的數(shù)值型變量,通過該變量類型,是添加與控件綁定的數(shù)值型變量,通過該變量可以直接操作控件對(duì)應(yīng)的變量??梢灾苯硬僮骺丶?duì)應(yīng)的變量。Type 對(duì)于對(duì)于controlcontrol類型,類型,typetype就是其控件類就是其控件類 對(duì)于對(duì)于valuevalue類型,類型,typetype有多種,如有多種,如CstringCstring,intint,floatfloat。152021/8/14在dlg中添加一個(gè)button和一個(gè)edit 為為
7、buttonbutton添加添加controlcontrol變量變量 為為editedit添加添加stringstring變量變量觀察dlg類頭文件的變化16自動(dòng)添加的對(duì)象代碼2021/8/14思考要實(shí)現(xiàn)的功能控件布局控件屬性修改通過類向?qū)砑涌丶兞客ㄟ^類向?qū)砑涌丶㈨憫?yīng)函數(shù)手動(dòng)添加控件輔助變量或函數(shù)=完成程序框架=完善添加的函數(shù)調(diào)試測試172021/8/14如果用到其他相關(guān)的功能,此時(shí)在類中添加比如,額外存放數(shù)據(jù)的普通變量,算法實(shí)現(xiàn)函數(shù)等182021/8/14下面,通過一個(gè)具體的例子,來說明一下如何在程序中靈活運(yùn)用上述知識(shí),實(shí)現(xiàn)一個(gè)功能。編寫一個(gè)計(jì)算器程序192021/8/14Clas
8、sWizard幫助我們實(shí)現(xiàn)了控件變量添加、消息響應(yīng)添加、消息函數(shù)添加等功能。帶來了方便,但也使得整個(gè)編碼比較零散。實(shí)際上,ClassWizard進(jìn)行的工作,都是在編寫代碼。如果脫離向?qū)?,直接去添加代碼,也能實(shí)現(xiàn)同樣的功能。202021/8/14這里我們?cè)敿?xì)講解一下控件的手工刪除方法。 在編程中,如果添加了一個(gè)控件,后期覺得沒用,就刪除在編程中,如果添加了一個(gè)控件,后期覺得沒用,就刪除掉了,再次編譯的時(shí)候會(huì)出錯(cuò)。這是因?yàn)閯h除過程沒有使掉了,再次編譯的時(shí)候會(huì)出錯(cuò)。這是因?yàn)閯h除過程沒有使用用ClassWizardClassWizard,而是直接在布局界面中刪除。這樣就會(huì)導(dǎo),而是直接在布局界面中刪除。
9、這樣就會(huì)導(dǎo)致清理不徹底。致清理不徹底。 因此我們?cè)敿?xì)講解手工刪除控件的方法。這也是控件手工因此我們?cè)敿?xì)講解手工刪除控件的方法。這也是控件手工編程的重要部分。編程的重要部分。212021/8/14 Step1Step1:打開類向?qū)?,選擇控件、選擇消息,點(diǎn):打開類向?qū)?,選擇控件、選擇消息,點(diǎn)會(huì)彈出提示,意思是,函數(shù)代碼還需要手動(dòng)刪除。會(huì)彈出提示,意思是,函數(shù)代碼還需要手動(dòng)刪除。 Step2Step2: 在在Dlg.cppDlg.cpp文件中,手動(dòng)刪除函數(shù)。文件中,手動(dòng)刪除函數(shù)。 Step3Step3: 在資源管理器中,刪除對(duì)應(yīng)的控件。在資源管理器中,刪除對(duì)應(yīng)的控件。 Step4Step4: 在在R
10、esource.hResource.h中,刪除對(duì)應(yīng)的控件中,刪除對(duì)應(yīng)的控件IDID宏宏如果第一步直接就把資源管理器中的圖標(biāo)刪了,也不要如果第一步直接就把資源管理器中的圖標(biāo)刪了,也不要緊。打開緊。打開Resource.h, Resource.h, 辨認(rèn)出控件的辨認(rèn)出控件的IDID,然后,然后Alt+E+iAlt+E+i,全局,全局搜索該搜索該IDID,就能找到控件對(duì)應(yīng)的,就能找到控件對(duì)應(yīng)的ON_BN_CLICKEDON_BN_CLICKED ( ( IDC_ADD_BUTTONIDC_ADD_BUTTON , , OnAddButtonOnAddButton ) )刪除該行,再找后邊對(duì)應(yīng)的函數(shù),
11、在刪除該行,再找后邊對(duì)應(yīng)的函數(shù),在.h .h和和.cpp.cpp文件中刪除文件中刪除函數(shù)即可函數(shù)即可222021/8/14 Step1Step1:打開類向?qū)?,選擇控件、選擇變量頁面。:打開類向?qū)Вx擇控件、選擇變量頁面。 Step2Step2: 選擇刪除變量,選擇刪除變量,ClassWizardClassWizard將自動(dòng)刪除相關(guān)代碼。將自動(dòng)刪除相關(guān)代碼。 Step3Step3: 在資源管理器中,刪除對(duì)應(yīng)的控件。在資源管理器中,刪除對(duì)應(yīng)的控件。 Step4Step4: 在在Resource.hResource.h中,刪除對(duì)應(yīng)的控件中,刪除對(duì)應(yīng)的控件IDID宏宏如果先刪除了控件,則需要手動(dòng)刪除該控件對(duì)應(yīng)的如果先刪除了控件,則需要手動(dòng)刪除該控件對(duì)應(yīng)的變量變量,包括三行:包括三行:1. 1. Dlg.hDlg.h 中的變量定義中的變量定義2. 2. Dlg.cppD
溫馨提示
- 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年度智能安防設(shè)備升級(jí)改造服務(wù)合同
- 2025年度小額貸款逾期債務(wù)追償合同
- 圖書館水電維修服務(wù)
- 2025年度房屋買賣合同違約責(zé)任認(rèn)定與賠償標(biāo)準(zhǔn)
- 2025年度個(gè)人信息數(shù)據(jù)保密與隱私保護(hù)協(xié)議
- 2025年度航空航天技術(shù)簡易版投資協(xié)議
- 2025年度教育機(jī)構(gòu)股份轉(zhuǎn)讓及資源整合協(xié)議
- 親子樂園單項(xiàng)裝修合同
- 2025年度城市綜合體安全保衛(wèi)與保安服務(wù)合同
- 2025年度養(yǎng)老院養(yǎng)老人才引進(jìn)合作協(xié)議
- 吊籃施工風(fēng)險(xiǎn)分級(jí)管控與隱患排查治理(匯編)
- 內(nèi)蒙古呼和浩特市2023年中考?xì)v史試題(附真題答案)
- 急診科護(hù)理帶教經(jīng)驗(yàn)
- 車間維修工培訓(xùn)課件
- 涉警輿情培訓(xùn)課件模板
- 安全管理工作中形式主義及防止對(duì)策
- 2024年鄭州信息科技職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 2023-2024學(xué)年西安市高二數(shù)學(xué)第一學(xué)期期末考試卷附答案解析
- 學(xué)校保密教育培訓(xùn)課件
- 班組文化是企業(yè)文化建設(shè)的核心
- Project-培訓(xùn)教學(xué)課件
評(píng)論
0/150
提交評(píng)論