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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

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

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論