freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

3d飛行訓(xùn)練系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_畢業(yè)論文(編輯修改稿)

2025-06-30 22:35 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 可以用來(lái)生成初步的框架文件(代碼和資源等);資源編輯器用于幫助直觀地設(shè)計(jì)用戶接口;ClassWizard 用來(lái)協(xié)助添加代碼到框架文件;最后編譯,則通過(guò)類庫(kù)實(shí)現(xiàn)了應(yīng)用程序特定的邏輯。 的特點(diǎn) MFC (Microsoft Foundation Class Library)中的各種類結(jié)合起來(lái)構(gòu)成了一個(gè)應(yīng)用程序框架,它的目的就是讓程序員在此基礎(chǔ)上來(lái)建立 Windows 下的應(yīng)用程序,這是一種相對(duì) SDK 來(lái)說(shuō)更為簡(jiǎn)單的方法。因?yàn)榭傮w上, MFC 框架定義了應(yīng)用程序的輪廓,并提供了用戶接口的標(biāo)準(zhǔn)實(shí)現(xiàn)方法,程序員所要做的就是通過(guò)預(yù)定義的接口把具體應(yīng)用程序特有的東西填入這個(gè)輪廓。 Microsoft Visual C++提供了相應(yīng)的工具來(lái)完成這個(gè)工作: AppWizard 可以用來(lái)生成初步的框架文件(代碼和資源等);資源編輯器用于幫助直觀地設(shè)計(jì)用戶接口; ClassWizard 用來(lái)協(xié)助添加代碼到框架文件;最后,編譯,則通過(guò)類庫(kù)實(shí)現(xiàn)了應(yīng)用程序特定的邏輯。 封裝 構(gòu)成 MFC 框架的是 MFC 類庫(kù)。 MFC 類庫(kù)是 C++類庫(kù)。這些類或者封裝了 Win32 應(yīng)用程序編程接口,或者封裝了應(yīng)用程序的概念,或者封裝了 OLE 特性,或者封裝了 ODBC 和 DAO 數(shù)據(jù)訪問(wèn)的功能,等等,分述如下。 ( 1)對(duì) Win32 應(yīng)用程序編程接口的封裝 用一個(gè) C++ Object 來(lái)包裝一個(gè) Windows Object。例如: class CWnd 是一個(gè) C++ window object,它把 Windows window(HWND)和 Windows window 有關(guān)的 API 函數(shù)封裝在 C++ window object 的成員函數(shù)內(nèi),后者的成員變量 m_hWnd 就是前者的窗口句柄。 ( 2)對(duì)應(yīng)用程序概念的封裝 使用 SDK 編寫(xiě) Windows 應(yīng)用程序時(shí),總要定義窗口過(guò)程,登記 Windows Class,創(chuàng)建窗口,等等。 MFC 把許多類似的處理封裝起來(lái),替程序員完成這些工作。另外, MFC 提出了以文檔 視圖為中心的編程模式, MFC 類庫(kù)封裝了對(duì)它的支持。文檔是用戶操作的數(shù)據(jù)對(duì)象,視圖是數(shù)據(jù)操作的窗口,用戶通過(guò)它處理、查看數(shù)據(jù)。 ( 3)對(duì) COM/OLE 特性的封裝 OLE 建立在 COM 模型之上,由于支持 OLE 的應(yīng)用程序必須實(shí)現(xiàn)一系列的接口( Interface),因而相當(dāng)繁瑣。 MFC 的 OLE 類封裝了 OLE API 大量的復(fù)雜工作,這些類提供了實(shí)現(xiàn) OLE 的更高級(jí)接口。 ( 4)對(duì) ODBC 功能的封裝 以少量的能提供與 ODBC 之間更高級(jí)接口的 C++類,封裝了 ODBC API 的大量的復(fù)雜的工作,提供了一種數(shù)據(jù)庫(kù)編程模式。 繼承 首先, MFC 抽象出眾多類的共同特性,設(shè)計(jì)出一些基類作為實(shí)現(xiàn)其他類的基礎(chǔ)。這些類中,最重要的類是 CObject 和 CCmdTarget。 CObject 是 MFC 的根類,絕大多數(shù) MFC 類是其派生的,包括CCmdTarget。 CObject 實(shí)現(xiàn)了一些重要的特性,包括動(dòng)態(tài)類信息、動(dòng)態(tài)創(chuàng)建、對(duì)象序列化、對(duì)程序調(diào)試的支持,等等。所有從 CObject 派生的類都將具備或者可以具備 CObject 所擁有的特性。CCmdTarget 通過(guò)封裝一些屬性和方法,提供了消息處理的架構(gòu)。 MFC 中,任何可以處理消息的類都從 CCmdTarget 派生。 針對(duì)每種不同的對(duì)象, MFC 都設(shè)計(jì)了一組類對(duì)這些對(duì)象進(jìn)行封裝,每一組類都有一個(gè)基類,從基類派生出眾多更具體的類。這些對(duì)象包括以下種類:窗口對(duì)象,基類是 CWnd;應(yīng)用程序?qū)ο?,基類?CwinThread;文檔對(duì)象 ,基類是 Cdocument,等等。 程序員將結(jié)合自己的實(shí)際,從適當(dāng)?shù)?MFC 類中派生出自己的類,實(shí)現(xiàn)特定的功能,達(dá)到自己的編程目的。 虛擬函數(shù)和動(dòng)態(tài)約束 論文) 8 MFC 以“ C++”為基礎(chǔ),自然支持虛擬函數(shù)和動(dòng)態(tài)約束。但是作為一個(gè)編程框架,有一個(gè)問(wèn)題必須解決:如果僅僅通過(guò)虛擬函數(shù)來(lái)支持動(dòng)態(tài)約束,必然導(dǎo)致虛擬函數(shù)表過(guò)于臃腫,消耗內(nèi)存,效率低下。例如, CWnd 封裝 Windows 窗口對(duì)象時(shí),每一條 Windows 消息對(duì)應(yīng)一個(gè)成員函數(shù),這些成員函數(shù)為派生類所繼承。如果這些函數(shù)都設(shè)計(jì)成虛擬函數(shù),由于數(shù)量太多,實(shí)現(xiàn)起 來(lái)不現(xiàn)實(shí)。于是, MFC建立了消息映射機(jī)制,以一種富有效率、便于使用的手段解決消息處理函數(shù)的動(dòng)態(tài)約束問(wèn)題。 這樣,通過(guò)虛擬函數(shù)和消息映射, MFC 類提供了豐富的編程接口。程序員繼承基類的同時(shí),把自己實(shí)現(xiàn)的虛擬函數(shù)和消息處理函數(shù)嵌入 MFC 的編程框架。 MFC 編程框架將在適當(dāng)?shù)臅r(shí)候、適當(dāng)?shù)牡胤絹?lái)調(diào)用程序的代碼。本書(shū)將充分的展示 MFC 調(diào)用虛擬函數(shù)和消息處理函數(shù)的內(nèi)幕,讓讀者對(duì) MFC的編程接口有清晰的理解。 MFC 的編程框架 MFC 的宏觀框架體系 MFC 實(shí)現(xiàn)了對(duì)應(yīng)用程序概念的封裝,把類、類的繼承、 動(dòng)態(tài)約束、類的關(guān)系和相互作用等封裝起來(lái)。這樣封裝的結(jié)果對(duì)程序員來(lái)說(shuō),是一套開(kāi)發(fā)模板(或者說(shuō)模式)。針對(duì)不同的應(yīng)用和目的,程序員采用不同的模板。例如, SDI 應(yīng)用程序的模板, MDI 應(yīng)用程序的模板,規(guī)則 DLL 應(yīng)用程序的模板,擴(kuò)展 DLL 應(yīng)用程序的模板, OLE/ACTIVEX 應(yīng)用程序的模板,等等。 這些模板都采用了以文檔 視為中心的思想,每一個(gè)模板都包含一組特定的類。典型的 MDI 應(yīng)用程序的構(gòu)成將在下一節(jié)具體討論。 為了支持對(duì)應(yīng)用程序概念的封裝, MFC 內(nèi)部必須作大量的工作。例如,為了實(shí)現(xiàn)消息映射機(jī)制,MFC 編程框架 必須要保證首先得到消息,然后按既定的方法進(jìn)行處理。又如,為了實(shí)現(xiàn)對(duì) DLL 編程的支持和多線程編程的支持, MFC 內(nèi)部使用了特別的處理方法,使用模塊狀態(tài)、線程狀態(tài)等來(lái)管理一些重要信息。雖然,這些內(nèi)部處理對(duì)程序員來(lái)說(shuō)是透明的,但是,懂得和理解 MFC 內(nèi)部機(jī)制有助于寫(xiě)出功能靈活而強(qiáng)大的程序。 總之, MFC 封裝了 Win32 API, OLE API, ODBC API 等底層函數(shù)的功能,并提供更高一層的接口,簡(jiǎn)化了 Windows 編程。同時(shí), MFC 支持對(duì)底層 API 的直接調(diào)用。 MFC 提供了一個(gè) Windows 應(yīng)用程序開(kāi)發(fā)模式,對(duì) 程序的控制主要是由 MFC 框架完成的,而且 MFC也完成了大部分的功能,預(yù)定義或?qū)崿F(xiàn)了許多事件和消息處理,等等。框架或者由其本身處理事件,不依賴程序員的代碼;或者調(diào)用程序員的代碼來(lái)處理應(yīng)用程序特定的事件。 MFC 是 C++類庫(kù),程序員就是通過(guò)使用、繼承和擴(kuò)展適當(dāng)?shù)念悂?lái)實(shí)現(xiàn)特定的目的。例如,繼承時(shí),應(yīng)用程序特定的事件由程序員的派生類來(lái)處理,不感興趣的由基類處理。實(shí)現(xiàn)這種功能的基礎(chǔ)是 C++對(duì)繼承的支持,對(duì)虛擬函數(shù)的支持,以及 MFC 實(shí)現(xiàn)的消息映射機(jī)制。 應(yīng)用程序構(gòu)成 用 AppWizard 產(chǎn)生一個(gè) MDI 工 程 t(無(wú) OLE 等支持), AppWizard 創(chuàng)建了一系列文件,構(gòu)成了一個(gè)應(yīng)用程序框架。這些文件分四類:頭文件( .h),實(shí)現(xiàn)文件 (.cpp),資源文件 (.rc),模塊定義文件 (.def),等。 構(gòu)成應(yīng)用程序?qū)ο? 下圖解釋了該應(yīng)用程序的結(jié)構(gòu),箭頭表示信息流向。 論文) 9 圖 應(yīng)用程序的結(jié)構(gòu) 從 CWinApp、 CDocument、 CView、 CMDIFrameWnd、 CMDIChildWnd 類對(duì)應(yīng)地派生出 CTApp、 CTDoc、 CTView、CMainFrame、 CChildFrame 五個(gè)類,這五個(gè)類 的實(shí)例分別是應(yīng)用程序?qū)ο?、文檔對(duì)象、視對(duì)象、主框架窗口對(duì)象和文檔邊框窗口對(duì)象。主框架窗口包含了視窗口、工具條和狀態(tài)欄。對(duì)這些類或者對(duì)象解釋如下。 ( 1)應(yīng)用程序 應(yīng)用程序類派生于 CWinApp。基于框架的應(yīng)用程序必須有且只有一個(gè)應(yīng)用程序?qū)ο?,它?fù)責(zé)應(yīng)用程序的初始化、運(yùn)行和結(jié)束。 ( 2)邊框窗口 類 如果是 SDI 應(yīng)用程序,從 CFrameWnd 類派生邊框窗口類,邊框窗口的客戶子窗口 (MDIClient)直接包含視窗口;如果是 MDI 應(yīng)用程序,從 CMDIFrameWnd 類派生邊框窗口類,邊框窗口的客戶子窗口 (MDIClient)直接包含文檔邊框窗口。 如果要支持工具條、狀態(tài)欄,則派生的邊框窗口類還要添加 CToolBar 和 CStatusBar 類型的成員變量,以及在一個(gè) OnCreate 消息處理函數(shù)中初始化這兩個(gè)控制窗口。 邊框窗口用來(lái)管理文檔邊框窗口、視窗口、工具條、菜單、加速鍵等,協(xié)調(diào)半模式狀態(tài)(如上下文的幫助 (SHIFT+F1 模式 )和打印預(yù)覽)。 ( 3)文檔邊框窗口 類 文檔邊框窗口類從 CMDIChildWnd 類派生, MDI 應(yīng)用程序使用文檔邊框窗口來(lái)包含視窗口。 ( 4)文檔 類 文檔類從 CDocument 類派生,用來(lái)管理數(shù)據(jù),數(shù)據(jù)的變化、存取都是通過(guò)文檔實(shí)現(xiàn)的。視窗口通過(guò)文檔對(duì)象來(lái)訪問(wèn)和更新數(shù)據(jù)。 ( 5)視 類 視類從 CView 或它的派生類派生。視和文檔聯(lián)系在一起,在文檔和用戶之間起中介作用,即視在屏幕上顯示文檔的內(nèi)容,并把用戶輸入轉(zhuǎn)換成對(duì)文檔的操作。 ( 6)文檔模板 類 文檔模板類一般不需要派生。 MDI 應(yīng)用程序使用多文檔模板類 CMultiDocTemplate; SDI 應(yīng)用程序使用單文檔模板類 CSingleDocTemplate。 應(yīng)用程序通過(guò)文檔模板類對(duì)象來(lái)管理上述對(duì)象(應(yīng)用程序?qū)ο?、文檔對(duì)象、主 邊框窗口對(duì)象、論文) 10 文檔邊框窗口對(duì)象、視對(duì)象)的創(chuàng)建。 構(gòu)成應(yīng)用程序的對(duì)象之間的關(guān)系 圖 MFC 類的繼承和派生關(guān)系用圖的形式可直觀地表示所涉及的 MFC 類的繼承或者派生關(guān)系,如圖所示意。 圖所示的類都是從 CObject 類派生出來(lái)的;所有處理消息的類都是從 CCmdTarget 類派生的。如果是多文檔應(yīng)用程序,文檔模板使用 CMultiDocTemplae,主框架窗口從 CMdiFarmeWnd 派生,它包含工具條、狀態(tài)欄和文檔框架窗口。文檔框架窗口從 CMdiChildWnd 派生,文檔框架窗口包含視 ,視從 CView 或其派生類派生。 構(gòu)成應(yīng)用程序的文件 通過(guò)上述分析,可知 AppWizard 產(chǎn)生的 MDI 框架程序的內(nèi)容,所定義和實(shí)現(xiàn)的類。下面,從文件的角度來(lái)考察 AppWizard 生成了源碼和作用。表 列出了 AppWizard 所生成的頭文件,表 列出了了 AppWizard 所生成的實(shí)現(xiàn)文件及其對(duì)頭文件的包含關(guān)系。 表 AppWizard 所生成的頭文件 頭文件 用途 標(biāo)準(zhǔn) AFX 頭文件 resource.h 定義了各種資源 ID include定義了從 CWinApp 派生的應(yīng)用程序?qū)ο?CTApp childfrm.h 定義了從 CMDIChildWnd 派生的文檔框架窗口對(duì)象 CTChildFrame 定義了從 CMDIFrameWnd 派生的框架窗口對(duì)象 CMainFrame 定義了從 CDocument 派生的文檔對(duì)象 CTDoc 論文) 11 定義了從 CView 派生的視圖對(duì)象 CTView 表 AppWizard 所生成的實(shí)現(xiàn)文件 從表 中的包含關(guān)系一欄可以看出: CTApp 的實(shí)現(xiàn)用到所有的用戶定義對(duì)象,包含了他們的定義; CView 的實(shí)現(xiàn)用到 CTdoc;其他對(duì)象的實(shí)現(xiàn)只涉及自己的定義; 當(dāng)然,如果增加其他操作,引用其他對(duì)象,則要包含相應(yīng)的類的定義文件。 基于 OpenGL+MFC 的三維模擬的編程環(huán)境配置 1.創(chuàng)建 MFC 項(xiàng)目 ①創(chuàng)建項(xiàng)目文件。選擇 File|New 菜單項(xiàng),新建一個(gè)基于對(duì)話框的項(xiàng)目文件 MyDlgOpenGL; ② 修改對(duì)話框模板。刪除對(duì)話框中的靜態(tài)文本,調(diào)整控件的位置; ③添加 OpenGL 開(kāi)發(fā) 庫(kù)文件到項(xiàng)目 在編譯程序的時(shí)候選擇 Project|Setting 菜單,在 Link 標(biāo)簽中的 Object/library modules 編輯框中輸入“ , , , ”; ④創(chuàng)建新類,添加消息映射。選擇 View|ClassWizard 菜單項(xiàng) ,打開(kāi)MFC對(duì)話框,在 Add Class之中選擇 New,以便添加一個(gè)新類 COpenGL,且該類的基類選擇 generic CWnd;最后利用 MFC ClassWizard 為 COpenGL 類添加消息 WM_CREATE, WM_PAINT 的映射。 實(shí)現(xiàn)文件 所包含的頭文件 實(shí)現(xiàn)的內(nèi)容和功能 include 用來(lái)產(chǎn)生預(yù)編譯的類型信息。 include include include include include include 定義 CTApp 的實(shí)現(xiàn),并定義 CTApp 類型的全局變量 theApp。 include include include 實(shí)現(xiàn)了類 CChildFrame include include include 實(shí)現(xiàn)了類 CMainFrame include include include 實(shí)現(xiàn)了類 CTDoc include include include include 實(shí)現(xiàn)了類 CTview 論
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1