Visual C++程序設(shè)計(jì)教程(第二版)課件:Microsoft類庫(kù)基礎(chǔ)_第1頁(yè)
Visual C++程序設(shè)計(jì)教程(第二版)課件:Microsoft類庫(kù)基礎(chǔ)_第2頁(yè)
Visual C++程序設(shè)計(jì)教程(第二版)課件:Microsoft類庫(kù)基礎(chǔ)_第3頁(yè)
Visual C++程序設(shè)計(jì)教程(第二版)課件:Microsoft類庫(kù)基礎(chǔ)_第4頁(yè)
Visual C++程序設(shè)計(jì)教程(第二版)課件:Microsoft類庫(kù)基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Microsoft類庫(kù)基礎(chǔ)

4.1Microsoft類庫(kù)概述

MFC(MicrosoftFoundationClass)類庫(kù)是VisualC++程序設(shè)計(jì)的核心,它封裝了許多常用的WindowsAPI函數(shù),絕大部分的VisualC++應(yīng)用程序都是在此基礎(chǔ)上構(gòu)成的。MFC具有以下特點(diǎn):完全支持所有的Windows函數(shù)、控制、消息、GDI基本圖形函數(shù)、菜單以及對(duì)話框。使用與傳統(tǒng)的WindowsAPI同樣的命名規(guī)則,因此,一個(gè)類所能完成的工作可直接從名字得知。不使用容易產(chǎn)生錯(cuò)誤的switch/case語(yǔ)句。所用的消息都映射到類中成員函數(shù),這種直接的消息到方法的映射對(duì)所有消息都適用。通過(guò)發(fā)送有關(guān)對(duì)象信息到文件的能力,來(lái)提供更好的判斷支持。也可以確認(rèn)成員變量。提供很多意外處理,減少錯(cuò)誤。在運(yùn)行時(shí)確定數(shù)據(jù)對(duì)象的設(shè)計(jì),這允許實(shí)例化類時(shí)動(dòng)態(tài)操作各域。代碼少,速度快。三大基類:

大多數(shù)MFC類是從三個(gè)基類(BaseClass)派生的:CObject、CCmdTarget和CWnd。4.2根類:CObject

CObject提供以下的基本服務(wù):支持序列化(serializationsupport)運(yùn)行時(shí)(Run-time)類的信息對(duì)象診斷輸出(objectdiagnosticoutput)與容器類兼容(compatibilitywithcollectionclasses)4.3MFC應(yīng)用程序框架結(jié)構(gòu)類用于構(gòu)造框架應(yīng)用程序的結(jié)構(gòu);提供多數(shù)應(yīng)用程序公用的功能;組成框架的類對(duì)象組合成一個(gè)Windows應(yīng)用程序工作框架。主要的組成對(duì)象有:一個(gè)從類CWinApp派生出的應(yīng)用程序?qū)ο?;一個(gè)或多個(gè)從類CDocument派生出的文檔對(duì)象一個(gè)或多個(gè)從類CView派生出的視對(duì)象4.3.1CWinApp類

CWinApp類層次關(guān)系圖:4.3.2CDocument類

CDocument類層次關(guān)系:4.3.3CView類

CView類的層次關(guān)系:4.3.3CView類(續(xù))

視圖類負(fù)責(zé)顯示、描述、操作、編輯文檔類的內(nèi)容。CView中有個(gè)指針型的成員變量指向所依附的文檔CDocument,可以通過(guò)GetDocument獲得該指針,便于對(duì)文檔編輯。4.4MFC窗口類

類CWnd及其派生類封裝一個(gè)Windows窗口句柄HWND。CWnd:所有窗口的基類。可使用下面的派生類,或者直接從CWnd派生自己的類。CFrameWnd:SDI應(yīng)用程序主框架窗口的基類,也是其它框架窗口的基類。CMDIFrameWnd:MDI應(yīng)用程序主框架窗口的基類。CMDIChildWnd:MDI應(yīng)用程序文檔框架窗口的基類。CMinFrameWnd:浮動(dòng)工具條最常見(jiàn)的最小框架窗口。COleIPFrameWnd:當(dāng)服務(wù)器文檔在編輯時(shí)為視提供一個(gè)框架窗口。4.5MFC異常類

MFC類庫(kù)提供了一個(gè)基于CException類的異常處理機(jī)制,CException類有很多派生類,分別使用于各種場(chǎng)合。4.5.1CMemoryException:(Out-of-memoryexception內(nèi)存不足異常)

內(nèi)存溢出時(shí)就會(huì)引發(fā)CMemoryException。尤其是當(dāng)new操作符分配內(nèi)存失敗時(shí),這個(gè)異常就會(huì)產(chǎn)生。因?yàn)镸FC用new操作符分配內(nèi)存,所以任何MFC內(nèi)存分配函數(shù)都會(huì)產(chǎn)生這個(gè)異常。4.5.2CNotSupportedException:(Requestforanunsupportedoperation)

MFC執(zhí)行幾個(gè)不被支持的函數(shù),當(dāng)用戶企圖調(diào)用這些函數(shù)時(shí),就會(huì)產(chǎn)生CNotSupportedException異常。所以在自己的不被支持的函數(shù)中應(yīng)用該類也是很方便的。用戶也可以通過(guò)調(diào)用AfxThrowUnsupportException()發(fā)出未支持異常。4.5.3CArchiveException:(Archive-specificexception)

當(dāng)序列化操作出錯(cuò)時(shí),就會(huì)發(fā)出CArchiveException異常。CArchiveException異常類的成員函數(shù)m_cause保存了指明異常發(fā)出的原因值。4.5.4CFileException:(File-specificexception)

在CFile類和CStdioFile以及其他文件類中,進(jìn)行文件打開(kāi)、關(guān)閉、讀、寫、指針移動(dòng)等操作過(guò)程中,如果發(fā)送錯(cuò)誤,一般會(huì)出現(xiàn)一個(gè)CFileException異常。4.5.5CResourceException:(Windowsresourcenotfoundornotcreatable)

當(dāng)Windows系統(tǒng)不能找到或不能定位所要求的資源時(shí),就會(huì)發(fā)出CResourceException異常。在創(chuàng)建調(diào)入資源對(duì)象時(shí),如對(duì)話框模板或位圖資源,或試圖分配GDI資源時(shí),最有可能發(fā)出異常。4.6MFC文件類MFC文件類都是從CFile類中派生出來(lái),CFile類提供了二進(jìn)制磁盤文件和無(wú)緩沖的文件接口。在任何MFC文件類中,都可以使用CFile類的成員函數(shù)。4.6.1打開(kāi)和關(guān)閉文件

調(diào)用CFile::Open()打開(kāi)文件調(diào)用CFile::Close()關(guān)閉文件4.6.2文件的讀寫

可以用CFile::Read()或CFile::Write()讀、寫指定的字節(jié)數(shù)。為了調(diào)整當(dāng)前位置,可以用SeekToBegin()或SeekToEnd()或更一般的CFile::Seek()函數(shù)4.6.3CStdioFile類

CStdioFile類提供了支持二進(jìn)制和文本的流式帶緩沖的文件。對(duì)于CStdioFile,也可以用CStdioFile::ReadLine(),或CStdioFile::WriteLine()成員函數(shù)一次讀寫一行。4.6.4CMemFile類

CMemFile類提供了基于內(nèi)存而不是磁盤的文件類。它用于創(chuàng)建內(nèi)存文件。當(dāng)創(chuàng)建時(shí),文件被打開(kāi),所以不需要調(diào)用Open()。4.6.5CArchive類

CArchive類用來(lái)存儲(chǔ)二進(jìn)制數(shù)據(jù)流,廣泛地被應(yīng)用于對(duì)象的序列化,通常由MFC框架創(chuàng)建。當(dāng)創(chuàng)建一個(gè)CArchive對(duì)象時(shí),必須傳遞一個(gè)指向CFile對(duì)象的指針以及為檔案(archive)指定一種模式,模式是CArchive::load或是CArchive::store。每一個(gè)CArchive必須與一個(gè)CFile相聯(lián)系,所以必須首先創(chuàng)建CFile。4.6.6CSocketFile類

CSocketFile類提供了基于Windows套接字類CSocket的文件類。MFC的CSocket類是由CAsyncSocket派生而來(lái),為WinSockAPI提供了一個(gè)更高級(jí)別的接口,使用CSocketFile和CArchive類來(lái)簡(jiǎn)化關(guān)于套接字?jǐn)?shù)據(jù)的輸入和輸出。4.7繪圖和打印類

MFC提供了與Windows的繪制工具相等價(jià)的繪圖工具類。繪圖工具類封裝了Windows的繪圖工具,MFC利用這些工具可以在設(shè)備環(huán)境中進(jìn)行繪圖。4.7.1設(shè)備環(huán)境類

CDC類派生四個(gè)類:客戶設(shè)備環(huán)境類CClientDC:用來(lái)方便地創(chuàng)建和破壞一個(gè)設(shè)備環(huán)境,窗口設(shè)備環(huán)境類CWindowDC:用來(lái)維護(hù)窗口的非客戶區(qū),如CClientDC維護(hù)客戶區(qū)一樣。繪圖設(shè)備環(huán)境類CPaintDC:在被構(gòu)造以獲得設(shè)備環(huán)境時(shí)調(diào)用CWnd::BeginPaint()。在這種情況下,設(shè)備環(huán)境只允許在已被無(wú)效化的窗口客戶區(qū)繪圖,而不能在整個(gè)客戶區(qū)繪圖。析構(gòu)時(shí),CPaintDC類調(diào)用CWnd::EndPaint()函數(shù)。元文件設(shè)備環(huán)境類CMetaFileDC:用來(lái)創(chuàng)建一個(gè)Microsoft元文件。4.7.2圖形對(duì)象類

4.8ODBC類

MFC類庫(kù)中ODBC數(shù)據(jù)庫(kù)類主要有三個(gè),即CDatabase類、CRecordset類和CRecordView類,分別完成不同的功能。4.8.1CDatabase類

CDatabase類封裝的是數(shù)據(jù)庫(kù)。主要的類成員函數(shù)有:Open和OpenEx:將CDatabase對(duì)象與一個(gè)ODBC數(shù)據(jù)源相連;Close:將CDatabase對(duì)象與ODBC數(shù)據(jù)源的連接關(guān)斷;GetDatabaseName:返回CDatabase對(duì)象與數(shù)據(jù)源相連的ODBC連接字符串;ExecuteSQL:執(zhí)行不返回記錄集的任意SQL語(yǔ)句。4.8.2CRecordset類

CRecordset類封裝了一個(gè)對(duì)某數(shù)據(jù)庫(kù)查詢和操作的記錄集。CRecordset類是MFCODBC數(shù)據(jù)庫(kù)中操作最多的類,它包含對(duì)記錄集進(jìn)行打開(kāi)和關(guān)閉、對(duì)記錄集進(jìn)行增刪和修改、改變當(dāng)前記錄位置以及獲取當(dāng)前數(shù)據(jù)庫(kù)信息等許多操作。4.8.2CRecordset類(續(xù))

要使用應(yīng)用程序自己的CRecordset派生類,需先打開(kāi)一個(gè)數(shù)據(jù)庫(kù),并構(gòu)造一個(gè)記錄集對(duì)象,并向構(gòu)造函數(shù)指出此CDatabase的對(duì)象指針。對(duì)記錄集進(jìn)行和獲取信息的操作函數(shù)主要有:4.8.2CRecordset類(續(xù))Open:根據(jù)指定的條件和順序打開(kāi)記錄集Close:關(guān)閉查詢記錄集,撤銷查詢;IsBOF:測(cè)試游標(biāo)是否滾動(dòng)到記錄集第一條記錄之前;IsEOF:測(cè)試游標(biāo)是否滾動(dòng)到記錄集最后一條記錄之后;IsDeleted:測(cè)試當(dāng)前記錄是否被刪除;GetRecordCount:返回該記錄集中行數(shù)(即記錄數(shù))4.8.2CRecordset類(續(xù))對(duì)記錄進(jìn)行修改和增刪的函數(shù)主要有:AddNew:創(chuàng)建一個(gè)空行以及存儲(chǔ)緩沖區(qū),將其中各列設(shè)置為所希望的值以后,調(diào)用Update函數(shù)可完成添加記錄的操作;Delete:刪除當(dāng)前行;Edit:把當(dāng)前記錄調(diào)入緩沖區(qū)供修改,修改后調(diào)用Update函數(shù)可更新此行記錄值;Update:將緩沖區(qū)中的值存儲(chǔ)到數(shù)據(jù)庫(kù)記錄中4.8.2CRecordset類(續(xù))改變當(dāng)前記錄位置的函數(shù)主要有:MoveFirst:光標(biāo)移動(dòng)到第一個(gè)記錄;MoveLast:光標(biāo)移動(dòng)到最后一個(gè)記錄;MovePrev:光標(biāo)向前移動(dòng)一個(gè)記錄;MoveNext:光標(biāo)向后移

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論