C教程從入門到精通chap10_第1頁
C教程從入門到精通chap10_第2頁
C教程從入門到精通chap10_第3頁
C教程從入門到精通chap10_第4頁
C教程從入門到精通chap10_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、創(chuàng)建MFC Windows什么是MFCWindows程序設計基礎單文檔應用什么是MFCMFC的優(yōu)點MFC的功能如何使用 MFC什么是MFCMFC是指Microsoft 基礎類庫(Microsoft Foundation Class Library)。這個類庫是在 Microsoft Windows 中進行程序設計的應用程序框架。MFC的所有代碼都是用 C+ 編寫的,并提供了許多代碼以方便程序設計人員完成各種任務,例如管理窗口、菜單和對話框,執(zhí)行基本輸入/輸出,存儲數(shù)據(jù)對象集合等。程序設計人員只須將自己要創(chuàng)建的應用程序的相關代碼添加到這個框架中就可以完成相關功能。由于C+具有面向對象程序設計的性

2、質,所以可以容易地擴展或重寫MFC框架所提供的各種基本功能。MFC的優(yōu)點首先,MFC 縮短了開發(fā)時間,使代碼的可移植性更強,并在提供了巨大程序設計支持的同時不降低編程的自由度和靈活性;其次,它使程序員可以輕松地使用一些通常認為是很難掌握的用戶界面元素和技術(如 ActiveX 技術、OLE 和 Internet 編程);另外,MFC 簡化了通過數(shù)據(jù)訪問對象 (DAO) 和開放式數(shù)據(jù)庫連接 (ODBC) 進行的數(shù)據(jù)庫編程,以及通過 Windows 套接字進行的網(wǎng)絡編程。MFC的功能MFC除了從根本上支持 Microsoft Windows 程序設計之外,還提供了許多專業(yè)化支持OLE、自動化、Ac

3、tiveX 控件、Internet 程序設計、Windows 公共控件、DAO 數(shù)據(jù)庫程序設計、ODBC 數(shù)據(jù)庫程序設計、多線程程序設計、網(wǎng)絡程序設計、可移植性等。但是,MFC作為一種通用的編程框架,并不能預見每一位程序設計人員的每一個需求。因此,如果要使用MFC來生成符合特定需求的程序,還必須添加自己的代碼。另外,MFC并不是C+的運行時庫。它不是通用函數(shù)庫,也不能在另外的非 MFC 代碼中調用 MFC 類成員函數(shù)。如何使用 MFC在創(chuàng)建MFC應用程序時可以使用Visual C+ .NET所提供的“MFC 應用程序向導”來為應用程序創(chuàng)建應用程序框架,還可以根據(jù)要創(chuàng)建的應用程序的特性修改向導的

4、相應選項。然后使用 Microsoft Visual C+ .NET提供的資源編輯器來以可視的方式設計用戶界面的各個元素,使用“類視圖”為這些元素添加相關代碼,并使用類庫實現(xiàn)應用程序的特定邏輯Windows程序設計基礎創(chuàng)建一個最簡單的Windows程序程序運行流程分析框架窗口類文檔模板視圖類文檔/視圖結構程序員的工作Windows程序設計基礎在MFC框架中,最重要的兩個概念就是文檔(Document)和視圖(View)。在使用MFC框架編寫Windows應用程序時,程序員最常編寫的部分就是文檔類和視圖類文檔和視圖把一個應用分成文檔和視圖的結構是基于MFC框架應用程序的一個重要特征。它的實質就是

5、將數(shù)據(jù)本身與用戶對數(shù)據(jù)的觀察和操作分離開來,所有的數(shù)據(jù)變化都在文檔類中進行管理,同時為視圖的訪問提供一個接口。而視圖則調用這個接口來響應用戶的操作,進行數(shù)據(jù)修改,并不斷更新文檔的顯示。由此可知,允許一個文檔擁有多個視圖。創(chuàng)建一個最簡單的Windows程序打開Microsoft Visual Studio .NET 2003,然后執(zhí)行“文件”|“新建”|“項目”命令,打開“新建項目”對話框。在這個對話框的左邊展開“Visual C+項目”節(jié)點,選中MFC節(jié)點,在右邊選擇“MFC應用程序”,并在下面的兩個文本框中分別輸入要建立的應用的名稱和希望放置應用程序的路徑在設置完成之后,單擊“確定”按鈕,進

6、入“MFC應用程序向導”。框架窗口類CMainFrame類是MFC為應用程序的主框架窗口創(chuàng)建的派生的框架窗口類,它定義了應用程序的界面特性,包括菜單、工具欄和狀態(tài)欄。如果應用程序是單文檔的(稱為SDI),則CMainFrame 類從CFrameWnd 類派生;如果應用程序是多文檔的(稱為MDI),則CMainFrame 類從CMDIFrameWnd 類派生。程序的執(zhí)行流程在BOOL CMyApp:InitInstance函數(shù)中會有一段代碼用于在創(chuàng)建一個新的運行實例時,讓系統(tǒng)根據(jù)文檔模板生成新的對象,包括CMainFrame對象、CMyDoc對象和CMyView對象。而CMainFrame對象就

7、是應用的主框架窗體對象。由于CMyApp:InitInstance函數(shù)是在程序初始化的時候運行的,所以所有的創(chuàng)建過程都會在程序初始化時完成。在創(chuàng)建CMainFrame對象時,系統(tǒng)會向主框架窗口發(fā)一條WM_CREATE消息,要求創(chuàng)建主框架窗口,而主框架窗口會調用OnCreate函數(shù)來處理這個消息。OnCreate函數(shù)是CMainFrame定義的,作用是對主框架窗口進行初始化。然后系統(tǒng)調用CWnd類定義的ShowWindow函數(shù),將主框架窗口顯示在屏幕上,此函數(shù)調用也是在CMyApp:InitInstance函數(shù)中實現(xiàn)的。文檔模板在10-01.cpp中定義的BOOL CMyApp:InitInst

8、ance函數(shù)中,有一段代碼用于使用文檔模板創(chuàng)建新的對象,這些對象包括CmainFrame, CmyDoc和CmyView 3個新的對象。 文檔類文檔是指一組數(shù)據(jù)的集合。在MFC中,文檔負責存儲數(shù)據(jù)和管理數(shù)據(jù)的打印,并可以協(xié)調和更新多個數(shù)據(jù)視圖。實現(xiàn)文檔操作的類是CDocument,它作為基類產(chǎn)生了很多的派生類用于實現(xiàn)文檔數(shù)據(jù)的讀寫操作。 視圖類視圖用于顯示數(shù)據(jù)并管理用戶與數(shù)據(jù)之間的交互,包括選擇和編輯。視圖負責在屏幕上顯示一個文檔,解釋用戶的輸入并對文檔進行相應的操作,還可以顯示圖像用以打印和打印預覽。MFC使用CView類來實現(xiàn)視圖。它的很多派生類支持不同類型的窗口。CScrollView可

9、以實現(xiàn)滾動條CFormView可以實現(xiàn)表格CEditView可以實現(xiàn)文本編輯。文檔/視圖的核心CDocument類用于存儲或控制程序數(shù)據(jù),并為程序員定義的文檔類提供基本功能。CView類是程序員定義的視圖類的基類。視圖附加到文檔上用于在屏幕上呈現(xiàn)文檔的圖像,并將用戶輸入解釋為對文檔的操作。視圖還為打印和打印預覽呈現(xiàn)圖像。CframeWnd類用于在文檔的一個或多個視圖周圍提供框架。CDocTemplate(或 CsingleDocTemplate和CMultiDocTemplate)類負責協(xié)調給定類型的一個或多個現(xiàn)有文檔,并負責創(chuàng)建此類型的正確文檔、視圖和框架窗口對象。文檔和視圖之間的關系單文檔

10、應用單文檔類型和多文檔類型消息驅動創(chuàng)建Hello World程序單文檔類型和多文檔類型單文檔類型指在文檔上具有單個視圖,而且每個文檔只有一個框架窗口的文檔類型。多文檔類型則可以同時處理幾個不同的文檔。實現(xiàn)單文檔類型的界面稱為單文檔界面(SDI),這種應用程序一次只允許打開一個窗口的實例。實現(xiàn)多文檔類型的界面稱為多文檔界面(MDI),這種應用程序允許通打開一個窗口的多個實例。消息驅動程序需要處理的消息Windows消息此類消息主要包括除了WM_COMMAND之外的以前綴 WM_開頭的消息。 控件通知指從控件和其他子窗口向自己的父窗口發(fā)送的 WM_COMMAND 通知消息。命令消息指用戶界面對象(菜單、工具欄按鈕和快捷鍵)發(fā)出的 WM_COMMAND 通知消息。創(chuàng)建Hello World程序現(xiàn)場創(chuàng)建講解創(chuàng)建一個簡單的文本編輯器現(xiàn)場創(chuàng)建講解多文檔應用MFC創(chuàng)建的MDI應用程序的結構增強文本編輯器的功能MF

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論