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

正文內容

3d飛行訓練系統(tǒng)的設計與實現_畢業(yè)論文(編輯修改稿)

2025-06-30 22:35 本頁面
 

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