![第4章 MFC基本應(yīng)用程序的建立.ppt_第1頁](http://file1.renrendoc.com/fileroot2/2020-1/20/364310f5-58d0-42b4-a6d3-c37879dc9ede/364310f5-58d0-42b4-a6d3-c37879dc9ede1.gif)
![第4章 MFC基本應(yīng)用程序的建立.ppt_第2頁](http://file1.renrendoc.com/fileroot2/2020-1/20/364310f5-58d0-42b4-a6d3-c37879dc9ede/364310f5-58d0-42b4-a6d3-c37879dc9ede2.gif)
![第4章 MFC基本應(yīng)用程序的建立.ppt_第3頁](http://file1.renrendoc.com/fileroot2/2020-1/20/364310f5-58d0-42b4-a6d3-c37879dc9ede/364310f5-58d0-42b4-a6d3-c37879dc9ede3.gif)
![第4章 MFC基本應(yīng)用程序的建立.ppt_第4頁](http://file1.renrendoc.com/fileroot2/2020-1/20/364310f5-58d0-42b4-a6d3-c37879dc9ede/364310f5-58d0-42b4-a6d3-c37879dc9ede4.gif)
![第4章 MFC基本應(yīng)用程序的建立.ppt_第5頁](http://file1.renrendoc.com/fileroot2/2020-1/20/364310f5-58d0-42b4-a6d3-c37879dc9ede/364310f5-58d0-42b4-a6d3-c37879dc9ede5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第4章:建立MFC基本應(yīng)用程序,4.1Windows編程基礎(chǔ)4.2 MFC 4.3使用MFC應(yīng)用向?qū)?.4使用類向?qū)Ш拖⒂成錂C(jī)制,4.1 Windows編程基礎(chǔ)4.2 MFC 4.3應(yīng)用向?qū)?.4類向?qū)Ш拖⒂成錂C(jī)制,4.1 Windows編程基礎(chǔ)(第1/4),Windows應(yīng)用程序的基本流程,如下圖所示。窗口編程的特點(diǎn):消息驅(qū)動(dòng)機(jī)制DOS程序通過調(diào)用系統(tǒng)函數(shù)來獲取用戶輸入,而Windows程序通過操作系統(tǒng)發(fā)送的消息來處理用戶輸入。由系統(tǒng)或運(yùn)行的應(yīng)用程序生成的操作稱為由事件生成的消息。在應(yīng)用程序中,用戶通過接收消息、分發(fā)消息和處理消息來相互交互。許多消息都是嚴(yán)格定義的,適用于所有應(yīng)用程序。在
2、圖形設(shè)備接口(GDI) DOS環(huán)境下,由于操作系統(tǒng)與外部設(shè)備緊密相連,在打印機(jī)上打印圖形非常復(fù)雜。Windows提供了一個(gè)稱為圖形設(shè)備接口(GDI)的抽象接口,它使用戶可以通過直接使用系統(tǒng)的GDI功能來實(shí)現(xiàn)輸入或輸出,而無需考慮連接到系統(tǒng)的外部設(shè)備的類型。基于資源的編程窗口應(yīng)用程序通常包含許多圖形元素,每個(gè)圖形元素都存儲(chǔ)為可以加載到應(yīng)用程序中的資源。這些資源可以編輯和修改,也可以由其他應(yīng)用程序共享。VC中提供的許多編輯器可以設(shè)計(jì)和編輯不同類型的資源,“所見即所得”。4.1Windows編程基礎(chǔ)(第3頁,共4頁),動(dòng)態(tài)鏈接庫提供了一些特定結(jié)構(gòu)的函數(shù),這些函數(shù)可以在運(yùn)行時(shí)由應(yīng)用程序加載和連接,多個(gè)
3、程序可以共享同一個(gè)動(dòng)態(tài)鏈接庫。從編程的角度來看,動(dòng)態(tài)鏈接庫可以提高程序模塊的靈活性,并且可以獨(dú)立設(shè)計(jì)、編譯和調(diào)試。Windows提供了大量可供應(yīng)用程序使用的函數(shù)調(diào)用。大多數(shù)用于實(shí)現(xiàn)其用戶界面和在顯示器上顯示的文本和圖形都是通過動(dòng)態(tài)鏈接庫實(shí)現(xiàn)的。在視窗系統(tǒng)中,內(nèi)核32用于處理核心服務(wù),如低級(jí)內(nèi)存功能、任務(wù)和資源管理;GDI32用于提供圖形設(shè)備接口,管理用戶界面和圖形繪制。用戶32負(fù)責(zé)管理窗口。進(jìn)程和線程窗口是一個(gè)32位多任務(wù)操作系統(tǒng),采用進(jìn)程和線程的管理模式。進(jìn)程是加載在內(nèi)存中的執(zhí)行應(yīng)用程序。進(jìn)程包括私有虛擬地址空間、代碼、數(shù)據(jù)和其他操作系統(tǒng)資源。一個(gè)進(jìn)程包括在該進(jìn)程的上下文中運(yùn)行的一個(gè)或多個(gè)線
4、程。線程是操作系統(tǒng)分配CPU時(shí)間的基本實(shí)體。線程可以執(zhí)行應(yīng)用程序代碼的任何部分,包括當(dāng)前由其他線程執(zhí)行的部分。同一進(jìn)程的所有線程共享相同的虛擬地址空間、全局變量和操作系統(tǒng)資源。應(yīng)用程序包括一個(gè)或多個(gè)進(jìn)程,每個(gè)進(jìn)程由一個(gè)或多個(gè)線程組成。4.1Windows編程基礎(chǔ)(第4頁,共4頁),MFC的基本數(shù)據(jù)類型需要說明:這些基本數(shù)據(jù)類型都以大寫字符出現(xiàn)。在第4章,MFC基礎(chǔ)應(yīng)用程序的基礎(chǔ),4.1 Windows編程基礎(chǔ)4.2MFC應(yīng)用程序向?qū)?.4,類向?qū)Ш拖⒂成錂C(jī)制,4.2MFC,4.2 MFC概述1987年,微軟推出了第一代Windows產(chǎn)品,并為應(yīng)用程序設(shè)計(jì)人員提供了Win16 API。在此基礎(chǔ)
5、上,引入了圖形用戶界面,并采用面向?qū)ο蠹夹g(shù)封裝了應(yīng)用編程接口。1992年,應(yīng)用框架產(chǎn)品AFX(應(yīng)用框架)被引入,并進(jìn)一步發(fā)展為基于AFX的MFC產(chǎn)品。MFC類的基本層次結(jié)構(gòu)如圖所示。,第4章,MFC基本應(yīng)用程序的建立,4.1 Windows編程基礎(chǔ)4.2 MFC 4.3應(yīng)用程序向?qū)?.4,類向?qū)Ш拖⒂成錂C(jī)制,4.3 MFC應(yīng)用程序向?qū)?第1頁,共24頁),4.3.1應(yīng)用程序框架類型,4.3使用MFC應(yīng)用程序向?qū)?第2頁,共24頁),4.3.2創(chuàng)建單個(gè)文檔應(yīng)用程序,開始選擇“文件”,“新建”并選擇“項(xiàng)目”選項(xiàng)卡;選擇MFC AppWizard(exe)的項(xiàng)目類型(用于創(chuàng)建可執(zhí)行的Windows
6、應(yīng)用程序),在“D:Visual C 6.0程序”中找到項(xiàng)目工作文件夾,在“項(xiàng)目名稱”框中輸入項(xiàng)目名稱Ex _ SDIHello,如圖所示,點(diǎn)擊確定。圖4.5 MFC應(yīng)用程序向?qū)У摹靶陆ā睂?duì)話框,4.3使用MFC應(yīng)用程序向?qū)?第3步,共24步),第一步是從應(yīng)用程序類型單文檔、多文檔和基于對(duì)話框中選擇SDI。決定應(yīng)用程序是否需要MFC的文檔/視圖結(jié)構(gòu)的支持。如果未選擇此項(xiàng),用戶需要實(shí)現(xiàn)打開和保存磁盤文件的功能以及程序中文檔和視圖之間的交互,跳過步驟2和步驟5,直接彈出“步驟6”對(duì)話框。選擇資源使用的語言,這里是“中國”,點(diǎn)擊“下一步”按鈕。圖4.6 SDI的“步驟1”對(duì)話框,4.3使用MFC應(yīng)用
7、程序向?qū)?第4步,共24步),并單擊下一步按鈕進(jìn)入第二步的下一步。第3步單擊下一步按鈕進(jìn)入下一步。圖4.7 SDI的“步驟2”對(duì)話框,圖4.8 SDI的“步驟3”對(duì)話框,4.3使用MFC應(yīng)用向?qū)?第5步,共24步),第四步是點(diǎn)擊“下一步”按鈕進(jìn)入下一步。圖4.9 SDI的“步驟4”對(duì)話框,4.3使用MFC AppWizard(第6步,共24步),以及步驟5,彈出對(duì)話框中出現(xiàn)三個(gè)選項(xiàng)(如圖所示)供用戶選擇:應(yīng)用程序的主窗口是MFC標(biāo)準(zhǔn)樣式還是窗口左側(cè)帶有拆分窗口的瀏覽器樣式;是否在源文件中添加注釋用于指導(dǎo)用戶編寫程序代碼;使用動(dòng)態(tài)鏈接庫或靜態(tài)鏈接庫。通常,離開默認(rèn)狀態(tài)并單擊下一步按鈕繼續(xù)下一步。
8、圖4.10 SDI的“步驟5”對(duì)話框,4.3使用MFC AppWizard(第7步,共24步),單擊步驟6中的“完成”按鈕,顯示如圖4.12所示的對(duì)話框。圖4.11 SDI的“步驟6”對(duì)話框,圖4.12項(xiàng)目信息對(duì)話框,4.3使用MFC應(yīng)用程序向?qū)?第8步,共24步),編譯并運(yùn)行,4.3使用MFC應(yīng)用程序向?qū)?第9步,共24步),4.3.3理解程序框架應(yīng)用程序類CEx_SDIHelloApp。讓我們先來看看Ex_SDIHello.h文件的Ex_SDIHello應(yīng)用程序:類cex _ SDI Helloapp 3360公共cwin應(yīng)用程序公共: cex _ SDI Helloapp();/AFX
9、_ VITAL(CEx _ SDIhelloapp)public : VirtuaL BOOL InitInstance();/AFX _ VIDEL/Implementation/AFX _ msg(cex _ SDI hello app)AFX _ msg void on appabout();/注意類向?qū)⒃谶@里添加和刪除成員函數(shù)。/不要編輯您在這些生成的代碼塊中看到的內(nèi)容!/afx _ msgdeclare _ message _ map()/聲明消息映射;4.3使用MFC應(yīng)用程序向?qū)?第10步,共24步)。在代碼中,/AFX _ VIDEL(類名)./AFX_VIRTUAL是由類向?qū)?/p>
10、定義的標(biāo)記,專門用作虛函數(shù)重載。同樣, /AFX_MSG(類名)./AFX_MSG是由類向?qū)Фx的標(biāo)記,專門用作消息映射聲明?!?TODO:”和代碼中的其他英文注釋是由MFC AppWizard為用戶自動(dòng)生成的。如果不需要這些注釋,在應(yīng)用程序向?qū)У牡谖宀綄?duì)話框中,輸入“您想生成源文件注釋嗎?”項(xiàng)目選擇為“不,謝謝”。,4.3使用MFC AppWizard(第10頁,共24頁),讓我們來看一下Ex_SDIHello.cpp源文件的Ex_SDIHello應(yīng)用程序:# includedAvx . h/頭文件的預(yù)編譯處理# includedEx _ SDiHello . h/頭文件的應(yīng)用程序類# in
11、cludedMainFrm . h/頭文件的主框架類# includeEx _ SDiHello doc . h/頭文件的文檔類# includeEx _ SDiHello view . h/頭文件的視圖類,4。當(dāng)用戶選擇/這個(gè)命令時(shí),函數(shù)on appabouton _ command(id _ app _ about,OnAppAbout) /注意類向?qū)⒃谶@里添加和刪除映射宏。/不要編輯您在這些生成的代碼塊中看到的內(nèi)容!/AFX_MSG_MAP /在“文件”菜單項(xiàng)中映射“新建”和“打開”命令消息。當(dāng)用戶選擇“新建”和/或“打開”命令時(shí),將相應(yīng)地執(zhí)行CWINAP:3360 on filene
12、w或cwin app 33603360 on File open _ command(ID _ cwin IP 33603360 on File new)on _ command(ID _ File _ open,cwin IP 33603360 on File open)/映射“文件”菜單項(xiàng)中的“打印設(shè)置”命令消息。當(dāng)用戶選擇/此命令時(shí),函數(shù)cwin AP :3360 onfileprontsetup on _ command(id _ file _ print _ setup,cwin AP : onfileprontsetup)end _ message _ map()/消息映射宏/消息
13、映射結(jié)束。使用MFC應(yīng)用程序向?qū)?第12步,共24步),CEx _ SDI hello app 3360: CEx _ SDI hello app()/構(gòu)造函數(shù)CEx _ SDIHelloApp theApp/定義了一個(gè)應(yīng)用程序類對(duì)象,表示一個(gè)實(shí)例boolcex _ SDI hello app :3360 init instance()./已定義的CAboutDlg對(duì)象AboutDlg。doMoDEL();/調(diào)用相應(yīng)的庫函數(shù),顯示CAboutDlg對(duì)話框。4.3使用MFC應(yīng)用程序向?qū)?第12頁,共24頁)。在代碼中, /AFX_MSG_MAP(類名)/AFX_MSG_MAP是由消息映射類向?qū)Ф?/p>
14、義的特殊標(biāo)記。4.3使用MFC AppWizard(第13步,共24步),主初始化函數(shù)體代碼:boolcex _ SDI helloapp:3360初始化()/如果用戶在MFC AppWizard的第三步選擇了“ActiveX控件”,/表示所創(chuàng)建的應(yīng)用程序支持ActiveX控件AFxenableControlContainer();/如果用戶在MFC AppWizard的第四步中選擇了“3d控件”,則/表示所創(chuàng)建的應(yīng)用程序支持Windows 95 # ifdef _ AFXDLL Enable 3D controls()之前的3D控件樣式;/使用動(dòng)態(tài)3D控件# else enable3D co
15、ntrols static();/使用靜態(tài)3D控件#endif /在系統(tǒng)注冊(cè)表中注冊(cè)應(yīng)用程序的主鍵值,以便與應(yīng)用程序/相關(guān)的一些參數(shù)可以存儲(chǔ)在主鍵值下。設(shè)置注冊(cè)表項(xiàng)(_ t(本地MFC appwizard生成的應(yīng)用程序);/從注冊(cè)表中調(diào)用應(yīng)用程序的一些標(biāo)準(zhǔn)參數(shù)值。loadstdprofiles settings();4.3使用MFC應(yīng)用程序向?qū)?第14頁,共24頁)。/如果用戶在MFC應(yīng)用程序向?qū)У牡谝徊竭x擇了“單文檔”類型,/然后執(zhí)行以下單文檔模板創(chuàng)建和初始化操作。CSingleDocTemplate * pDocTemplate;/定義單個(gè)文檔模板指針變量pdoctemplate=new csingledoctemplate(/注冊(cè)并創(chuàng)建單個(gè)文檔應(yīng)用程序模板IDR _ MAPPLIER,/菜單、快捷方式等的資源標(biāo)識(shí)號(hào)runtime _ class(cex _ sdiehelldoc)。/文檔類RUNTIME _ CLASE(CMainFrame),/主框架窗
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代企業(yè)如何通過公關(guān)活動(dòng)吸引目標(biāo)客戶
- 理論與實(shí)踐在文化傳承中尋求創(chuàng)新發(fā)展
- 國慶節(jié)鮮奶活動(dòng)方案策劃
- Module5 Unit1 He is playing the suona,but the phone rings(說課稿)-2023-2024學(xué)年外研版(三起)英語六年級(jí)下冊(cè)
- 8《上課了》說課稿-2023-2024學(xué)年道德與法治一年級(jí)上冊(cè)統(tǒng)編版001
- 2023九年級(jí)數(shù)學(xué)上冊(cè) 第23章 圖形的相似23.4 中位線說課稿 (新版)華東師大版
- 9 知法守法 依法維權(quán) 說課稿 -2023-2024學(xué)年道德與法治六年級(jí)上冊(cè)(統(tǒng)編版)
- 2024年四年級(jí)英語上冊(cè) Module 4 The world around us Unit 11 Shapes說課稿 牛津滬教版(三起)
- Unit8 I can do this for you 第三課時(shí)(說課稿)-2024-2025學(xué)年譯林版(三起)(2024)英語三年級(jí)上冊(cè)
- 3 光的傳播會(huì)遇到阻礙嗎 說課稿-2024-2025學(xué)年科學(xué)五年級(jí)上冊(cè)教科版
- 城市基礎(chǔ)設(shè)施修繕工程的重點(diǎn)與應(yīng)對(duì)措施
- GB 12710-2024焦化安全規(guī)范
- 2022年中考化學(xué)模擬卷1(南京專用)
- 【??途W(wǎng)】2024秋季校園招聘白皮書
- 2024-2025銀行對(duì)公業(yè)務(wù)場景金融創(chuàng)新報(bào)告
- 新加坡小學(xué)二年級(jí)英語試卷practice 2
- 小學(xué)五年級(jí)英語20篇英文閱讀理解(答案附在最后)
- 2023年遼寧鐵道職業(yè)技術(shù)學(xué)院高職單招(英語)試題庫含答案解析
- GB/T 23800-2009有機(jī)熱載體熱穩(wěn)定性測定法
- T-SFSF 000012-2021 食品生產(chǎn)企業(yè)有害生物風(fēng)險(xiǎn)管理指南
- 水庫工程施工組織設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論