




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 MFC程序設(shè)計基礎(chǔ)v重點:MFC的特點,MFC中的類和應(yīng)用框架程序v難點:MFC的消息處理和運行模式v掌握:簡單MFC程序的編制2.1MFC概述v什么是MFC?1)最初的Windows程序設(shè)計:2)C+ 程序設(shè)計(面向?qū)ο螅?2.1.1 MFC與應(yīng)用程序框架vMFC定義了 應(yīng)用程序框架的好處 2.1.2 MFC的組成MFC主要由一組類,一些宏以及若干個全局函數(shù)組成。作用:2.1.3 MFC中的類MFC中的類分為兩種(見書P20圖2.1): v從CObject類派生的類(絕大部分)v沒有父類的非派生類CObject派生類包含Windows API的接口類:CWinApp、 CWnd、 Cmen
2、u 、CGdiObject 、CDC2.2 MFC程序的特點MFC編程與Windows API編程的異同之處:相同點:不同點:2.2.1 MFC與消息處理 2.2.2 MFC運行模式MFC使用兩個類來封裝WinMain和窗口函數(shù)的功能其他對象 CWinApp對象CWnd對象系統(tǒng)消息消息消息創(chuàng)建創(chuàng)建創(chuàng)建 消息2.3.簡單的簡單的MFC程序程序1、包含afxwin.h頭文件 此頭文件包含了MFC包含的各種類,宏,全局函數(shù),還包還了Windows.h 2、派生應(yīng)用程序類 CWinApp類封裝了應(yīng)用程序的初始化、運行和終止等功能,所以基于框架的應(yīng)用程序必須有且只有一個CWinApp類及其派生類的對象。
3、3、派生窗口類CWnd:OnPain成員函數(shù)負責(zé)處理發(fā)給窗口的WM_PAINT消息,可以實現(xiàn)窗口繪制,因此需要對CWnd派生子類,并重載(重寫)OnPaint成員函數(shù)。在MFC中,CWnd的一些派生類對CWnd實現(xiàn)了更高的封裝,不僅添加了功能,而且使用更方便,如CFrameWnd。本例的窗口類為了使用更方便就是從CFrameWnd進行派生的。另外,MFC程序中需要使用 DECLARE_MESSAGE_MAP()宏為類添加消息處理能力。4、建立窗口v在窗口類的構(gòu)造函數(shù)中使用從父類繼承來的Create成員函數(shù)來建立窗口。該函數(shù)的參數(shù)說明見書P24。v在重載的InitInstance成員函數(shù)中添加建
4、立程序窗口的代碼,程序在初始化時完成窗口的建立(new 一個窗口類,創(chuàng)建窗口類對象的同時,構(gòu)造函數(shù)創(chuàng)建窗口)和顯示(調(diào)用ShowWindow和UpdateWindow)。代碼見書P24。5、加入消息映射v以BEGIN_MASSAGE_MAP()開始、以END_MASSAGE_MAP()結(jié)束的一組宏與類的定義中,所使用的DECLARE_MESSAGE_MAP()宏一起,可以建立窗口消息與消息處理成員函數(shù)間的對應(yīng)關(guān)系,這些宏被統(tǒng)稱為消息映射宏。vBEGIN_MASSAGE_MAP()宏有兩個參數(shù),分別是處理消息的類及其父類。vBEGIN_MASSAGE_MAP()和END_MASSAGE_MAP(
5、)之間,使用一些預(yù)定義的宏來關(guān)聯(lián)消息和消息成員處理函數(shù),如ON_WM_PAINT()宏用來建立WM_PAINT消息到一個窗口類OnPaint成員函數(shù)間的映射關(guān)系,當(dāng)該窗口類管理的窗口接收到WM_PAINT消息時,框架會自動調(diào)用該窗口類的OnPaint成員函數(shù)。v消息種類很多,所以來接消息和消息處理成員函數(shù)的宏也很多,用戶可以通過MSDN進行查詢。v消息映射宏及OnPaint代碼見書P25。6、建立MFC應(yīng)用程序?qū)ο?C02App theApp;1、啟動VC2、菜單”FILE”NEW”,后選擇“Win32 Application”,并在右側(cè)“Project name:”后輸入框中輸入工程名后,點擊“OK”按鈕,然后選擇“An empty project”后,選擇“Finish”按鈕后,選擇“OK”按鈕。3、菜單”FILE”NEW”,選擇“files”后選擇列表框中的“C+ Source File”后,在右側(cè)“File”后輸入框中輸入文件名后選擇“OK”按鈕。4、輸入程序源代碼。-以上同第一章,也可以直接將第一章的源碼替換為第二章源碼。5、修改項目屬性:菜單”Project”Settings”,在“General”選項卡中的“Micr
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 供方采購合同范本
- 企業(yè)項目合資合同范本
- 浙江長興縣龍山中學(xué)人教版七年級下冊歷史與社會第八單元第三課 中華文明探源教學(xué)設(shè)計
- 2024年韶關(guān)市曲江區(qū)住房和城鄉(xiāng)建設(shè)管理局招聘筆試真題
- 公司英文合同范本
- 農(nóng)田路養(yǎng)護合同范本
- 前臺收銀合同范本
- 包材銷售合同范本
- 2024年金昌市金川區(qū)圖書館招聘筆試真題
- 農(nóng)村自建住宅買賣合同范本
- 小工考勤表記工模板
- 【英語詞匯】閩教版(三起點)小學(xué)英語單詞默寫表(帶音標(biāo)按順序)(全8冊)
- 編輯學(xué)概論-課件
- 理發(fā)店個人門面轉(zhuǎn)讓合同
- 03J111-1 輕鋼龍骨內(nèi)隔墻
- 資產(chǎn)負債表模板范本
- 中國城市人口排名表
- 基于技術(shù)互補性的潛在技術(shù)合作伙伴選擇研究
- 人教版高中數(shù)學(xué)選擇性必修二導(dǎo)學(xué)案
- 牛津深圳版八年級下冊英語Unit 1-Unit 8各單元作文范文(實用)
- 人教版六年級下冊數(shù)學(xué)(全冊)同步隨堂練習(xí)一課一練
評論
0/150
提交評論