MFC框架基礎(chǔ)介紹課件_第1頁
MFC框架基礎(chǔ)介紹課件_第2頁
MFC框架基礎(chǔ)介紹課件_第3頁
MFC框架基礎(chǔ)介紹課件_第4頁
MFC框架基礎(chǔ)介紹課件_第5頁
已閱讀5頁,還剩72頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

MFC框架基礎(chǔ)介紹講師:鮑鈺ybao@1/31/20241精選課件MicrosoftFoundationClass微軟基礎(chǔ)類1/31/20242精選課件MFC基礎(chǔ)用傳統(tǒng)的Windows編程方法開發(fā)應(yīng)用程序,你會深刻地體會到,即使是開發(fā)一個簡單地Windows應(yīng)用程序也需要對Windows的編程原理有很深刻的認識,同時也要手工編寫很多的代碼。因為程序的出錯率幾乎是隨著代碼長度的增加呈幾何級數(shù)增長的,這就使得高度程序變得非常困難。所以傳統(tǒng)的Windows編程是需要極大的耐心和豐富的編程經(jīng)驗的。1/31/20243精選課件MFC基礎(chǔ)近幾年來,面向?qū)ο蠹夹g(shù)無論是在理論還是實踐上都在飛速地發(fā)展。面向?qū)ο蠹夹g(shù)中最重要的就是“對象”的概念,它把現(xiàn)實世界中的氣球、自行車等客觀實體抽象成程序中的“對象”。這種“對象”具有一定的屬性和方法,這里的屬性指對象本身的各種特性參數(shù)。如氣球的體積,自行車的長度等,而方法是指對象本身所能執(zhí)行的功能,如氣球能飛、自行車能滾動等。一個具體的對象可以有許多的屬性和方法,面向?qū)ο蠹夹g(shù)的重要特點就是對象的封裝性,對于外界而言,并不需要知道對象有哪些屬性,也不需要知道對象本身的方法是如何實現(xiàn)的,而只需要調(diào)用對象所提供的方法來完成特定的功能。從這里我們可以看出,當把面向?qū)ο蠹夹g(shù)應(yīng)用到程序設(shè)計中時,程序只是在編寫對象方法時才需要關(guān)心對象本身的細節(jié)問題,大部分的時間是放在對對象的方法的調(diào)用上,組織這些對象進行協(xié)同工作。1/31/20244精選課件MFC基礎(chǔ)MFC的英文全稱是MicrosoftFundationClasses,即微軟的基本類庫,MFC的本質(zhì)就是一個包含了許多微軟公司已經(jīng)定義好的對象的類庫,自從1993年美國微軟公司推出VisualC++1.0后便配套推出了微軟基礎(chǔ)類庫MFC1.0(MicrosoftFounddationClass)。MFC1.0第一個拉開了以面向?qū)ο蟮某绦蛟O(shè)計方法編制多任務(wù)、多進程的GUI應(yīng)用軟件系統(tǒng)的序幕。微軟公司在16位平臺上幾乎沒有停留多久,便陸續(xù)推出了MFC1.5,MFC2.0(含支持32位的Win32),MFC3.0,MFC4.0。1997年5月隨著VisualC++5.0的問世,人們看到了支持Web應(yīng)用和ActiveX的MFC6.0基礎(chǔ)類庫系統(tǒng)。1/31/20245精選課件MFC基礎(chǔ)雖然我們要編寫的程序在功能是千差萬別的,但從本制裁上來講,都可以化歸為用戶界面的設(shè)計,對文件的操作,多媒體的使用,數(shù)據(jù)庫的訪問等等一些最主要的方面。這一點正是微軟提供MFC類庫最重要的原因,在這個類庫中包含了100多個程序開發(fā)過程中最常用到的對象。在進行程序設(shè)計的時候,如果類庫中的某個對象能完成所需的功能,這時我們只要簡單地調(diào)用已有對象的方法就可以了。我們還可以利用面向?qū)ο蠹夹g(shù)中很重要的“繼承”方法從類庫中的已有對象派生出我們自己的對象,這時派生出來的對象除了具有類庫中對象的特性和功能之外,還可以由我們自己根據(jù)需要加上所需的特性和方法,產(chǎn)生一個更專門的,功能更為強大的對象。當然,你也可以在程序中創(chuàng)建全新的對象,并根據(jù)需要不斷完美對象的功能。1/31/20246精選課件MFC基礎(chǔ)正是由于MFC編程方法充分利用了面向?qū)ο蠹夹g(shù)的優(yōu)點,它使得我們編程時極少需要關(guān)心對象方法的實現(xiàn)細節(jié),同時類庫中的各種對象的強大功能足以完成我們程序中的絕大部分所需功能,這使得應(yīng)用程序中程序員所需要編寫的代碼大為減少,有力地保證了程序良好的可調(diào)試性。1/31/20247精選課件MFC基礎(chǔ)最后要指出的是,MFC類庫在提供對象的各種屬性和方法都是經(jīng)過地謹慎地編寫和嚴格地測試,可靠性很高,這就保證了使用MFC類庫不會影響程序的可靠性和正確性。MFC是很龐大的。例如,版本7.0中包含了大約200個不同的類。萬幸的是,你在典型的程序中不需要使用所有的函數(shù)。事實上,你可能只需要使用其中的10多個MFC中的不同類就可以建立一個非常漂亮的程序。

1/31/20248精選課件微軟基礎(chǔ)類庫MFCCDocumentCObjectCCmdTargetCWinThreadCWinAppCOleControlModuleApplicationuserdocumentCDocTemplateCSingleDocTemplateCMultiDocTemplateCViewCWndCFrameView1/31/20249精選課件MFC體系結(jié)構(gòu)MFC是個相當龐大的類庫,各個類間的繼承與派生關(guān)系井井有條。

CObject類是MFC的基類,其它大部分類都是從CObject派生而來的。CObject類的派生類按功能可分為多個部分。下面簡要介紹部分常用的類的派生結(jié)構(gòu)。1/31/202410精選課件

窗口類圖:部分窗口類的繼承關(guān)系CObjectCCmdTargetCWndCFrameWndCViewCDialogBox1/31/202411精選課件其中,CCmdTarget(命令目標類)是MFC中擁有消息循環(huán)和消息處理機制的基類。關(guān)于MFCWindows程序中建立消息處理機制的步驟在后面詳細介紹。CWnd類是從CCmdTarget中派生出來的重要類,它是所有窗口類的基類。CCmdTarget間接派生出了文檔/視圖結(jié)構(gòu)中應(yīng)用程序框架中的許多重要的類:CWinApp、CFrameWnd、CDocument、CView等(SDI應(yīng)用程序框架的四個主要的類)。1/31/202412精選課件應(yīng)用程序框架類圖:應(yīng)用程序框架類的繼承關(guān)系CWinApp類是從CCmdTarget中派生出來的最重要的類,每個用MFC編寫的Windows程序必須有一個它的派生類的對象,它代表一個應(yīng)用程序,整個程序的運行都由它負責(zé)。CWinApp類很大程度上隱藏了APIWindows程序中WinMain函數(shù)。CObjectCCmdTargetCWinThreadCDocumentCWinApp1/31/202413精選課件圖形繪制類圖:圖形繪制類的繼承關(guān)系圖形繪制類的基類是CDC(設(shè)備環(huán)境類)。CDC類提供了基本的繪圖及文本輸出函數(shù)。CObjectCDCCClientDCCPaintDCCWindowDC1/31/202414精選課件圖形對象類

圖:部分繪圖對象類的繼承關(guān)系繪圖對象類提供給CDC及其派生類在繪圖時所需的各種圖形對象,如畫筆、刷子、字體等。

CObjectCGdiObjectCPenCBrushCFont1/31/202415精選課件MFC體系結(jié)構(gòu)MFC主要組成部分:類、宏和全局函數(shù)。類是MFC中最主要的內(nèi)容。MFC類是以層次結(jié)構(gòu)方式組織起來的。MFC中的類分成兩部分,除了一些輔助類,大多數(shù)的MFC類是直接或間接從根類CObject派生而來。幾乎每一個派生層次都與一具體的Windows實例相對應(yīng),如文檔類、窗口類和視圖類等。MFC宏主要功能:消息映射、運行時對象類型服務(wù)、診斷服務(wù)、異常處理。

MFC約定:全局函數(shù)以“Afx”為前綴,全局變量以“afx”為前綴。

1/31/202416精選課件

宏就是用預(yù)處理指令#define定義一個標識符,用它來表示一個字符串或一段源代碼。MFC宏作為MFC類庫的一個組成部分在MFC應(yīng)用程序中經(jīng)常出現(xiàn)。MFC宏在Afxwin.h、Afx.h及Afxmsg_.h等MFC頭文件中分別進行了定義。

MFC提供的宏有很多,常用的包括消息映射宏、運行時類型識別的宏、調(diào)試宏和異常宏等,下表列出了一般MFC編程時要用到的宏。MFC宏

1/31/202417精選課件

RUNTIME_CLASS獲得運行時類的CRuntimeClass結(jié)構(gòu)的指針DECLARE_DYNAMIC提供基本的運行時類型識別(聲明)IMPLEMENT_DYNAMIC提供基本的運行時類型識別(實現(xiàn))DECLARE_DYNCREATE動態(tài)創(chuàng)建(聲明)IMPLEMENT_DYNCREATE動態(tài)創(chuàng)建(實現(xiàn))DECLARE_SERIAL對象序列化(聲明)IMPLEMENT_SERIAL對象序列化(實現(xiàn))DECLARE_MESSAGE_MAP聲明消息映射表BEGIN_MESSAGE_MAP開始建立消息映射表END_MESSAGE_MAP結(jié)束建立消息映射表ON_COMMAND命令消息映射宏ON_MESSAGE自定義消息映射宏ON_WM_…MFC預(yù)定義消息映射宏ON_BN_…,ON_CBN_…等控件通知(Notification)消息映射宏1/31/202418精選課件MFC調(diào)試宏

跟蹤聲明和斷言在查找程序設(shè)計錯誤時是非常有用的。跟蹤聲明可以讓程序在運行過程中遇到跟蹤聲明時在輸出窗口顯示指定的信息,而斷言使程序在斷言條件不成立時暫停程序的運行。MFC提供了一些跟蹤聲明和斷言宏用于程序調(diào)試,這些宏只能用于DEBUG版本應(yīng)用程序的調(diào)試狀態(tài)。1.TRACE()宏語法說明如下:

TRACE(<表達式>);

其中參數(shù)<表達式>是由輸出格式和變量等組成的輸出表達式,其格式與函數(shù)printf()的參數(shù)一樣,它指定調(diào)試時要在Output窗口輸出的內(nèi)容。1/31/202419精選課件char*szName=“LiMing”;intnAge=18;TRACE(“Name=%s,Age=%d\n”,szName,nAge);(只有在調(diào)試的時候才可以使用,才可以有結(jié)果輸出)

例1

對于以下代碼:調(diào)試時在Output窗口輸出以下內(nèi)容:Name=LiMing,Age=181/31/202420精選課件例2

設(shè)自定義一個CFrameWnd的派生類CMyFrame,在程序中構(gòu)建一個與CMyFrame相關(guān)聯(lián)的文檔模板對象,并為構(gòu)鍵的文檔模板創(chuàng)建框架窗口:

CMyFrame*pFrame=(CMyFrame*)AfxGetMainWnd();

ASSERT(pFrame->IsKindOf(RUNTIME_CLASS(CMyFrame)));

//判斷pFrame的類型

pFrame->DoSomeOperation();ASSERT(1==2);//當條件為假時,退出程序調(diào)試的時候可以調(diào)用1/31/202421精選課件目錄MFCBaseMacro下例程F5看TRACE信息,右鍵ASSERT退出1/31/202422精選課件常用的MFC類

MFC庫中的類按層次關(guān)系劃分類根類:CObject應(yīng)用程序體系結(jié)構(gòu)類窗口、對話框和控件類繪圖和打印類簡單數(shù)據(jù)類型類數(shù)組、列表和映射類文件和數(shù)據(jù)庫類Internet和網(wǎng)絡(luò)工作類OLE類調(diào)試和異常類1/31/202423精選課件CRuntimeClass結(jié)構(gòu)

CRuntimeClass在MFC中是以結(jié)構(gòu)的方式定義,它含有使用CRuntimeClass結(jié)構(gòu)的類的有關(guān)信息,與CObject類一同實現(xiàn)運行時類型識別的功能。CRuntimeClass結(jié)構(gòu)包含了類名、對象所占存儲空間大小及類的版本號等成員變量和動態(tài)對象創(chuàng)建、派生關(guān)系判斷等成員函數(shù)。每個從CObject類派生的類都有一個CRuntimeClass對象同它關(guān)聯(lián)。要使用CRuntimeClass結(jié)構(gòu),必須結(jié)合使用RUNTIME_CLASS()宏和其它有關(guān)運行時類型識別的MFC宏。1/31/202424精選課件CObject類

由于MFC中大部分類是從CObject類繼承而來的,CObject類描述了幾乎所有的MFC類的一些公共特性,CObject類為程序員提供了對象診斷、運行時類型識別和序列化等功能。對象診斷。MFC提供了兩種診斷特性:利用成員函數(shù)AssertValid()進行對象有效性檢查,使得類可以在繼續(xù)運行前對自己進行正確性檢查;利用成員函數(shù)Dump()輸出對象的數(shù)據(jù)成員的值。

運行時訪問類的信息:提供GetRuntimeClass()和IskindOf()兩個成員函數(shù)來支持運行時類型識別。對象序列化。1/31/202425精選課件命令相關(guān)類:CCmdTarget類該類是CObject的子類,它是MFC庫中所有具有消息映射屬性的基類。消息映射規(guī)定了當一對象接收到消息命令時,應(yīng)調(diào)用哪一個函數(shù)對該消息進行處理。設(shè)置光標。CCmdTarget類定義3個函數(shù)用于改變光標狀態(tài):BeginWaitCursor()將光標改為沙漏形狀,EndWaitCursor()將光標改回調(diào)用BeginWait-Cursor()之前的形狀,RestoreWaitCursor()用于將光標還原為等待狀態(tài)。voidCMyView::OnSomeCommand(){

BeginWaitCursor(); //顯示沙漏狀光標

......//進行某種操作

EndWaitCursor(); //恢復(fù)原來光標的形狀}1/31/202426精選課件窗口應(yīng)用程序類:CWinApp類在MFC應(yīng)用程序中,CWinApp類取代了WinMain()主函數(shù)在SDK應(yīng)用程序中的地位。傳統(tǒng)SDK應(yīng)用程序WinMain()函數(shù)完成的工作現(xiàn)在由類CWinApp的InitApplication()、InitInstance()和Run()三個成員函數(shù)承擔。CWinApp類封裝了初始化、運行、終止應(yīng)用程序的代碼。在任何MFC應(yīng)用程序中有且僅有一個CWinApp派生類的對象,它代表了程序中運行的主線程,也代表了應(yīng)用程序本身。1/31/202427精選課件可視對象類:CWnd類CWnd類由CCmdTarget類直接派生而來,該類及其派生類的實例是一個窗口。CWnd類代表了MFC中最基本的GUI對象,它是一個功能最完善、成員函數(shù)最多的MFC類。窗口的實例包括應(yīng)用程序主窗口、對話框和控件等。CWnd類提供的功能包括注冊新窗口類、創(chuàng)建窗口及子窗口、獲取窗口、管理窗口、訪問窗口及控件、控制窗口光標、創(chuàng)建和使用句柄和支持工具提示等,CWnd提供了MFC中所有窗口類的基本功能,是CCmdTarget類的子類創(chuàng)建Windows窗口要分兩步進行引入構(gòu)造函數(shù),構(gòu)造一個CWnd對象調(diào)用Create建立Windows窗口,并將它連到CWnd對象上1/31/202428精選課件其它可視對象類視類:CView類該類表示框架窗口的客戶區(qū)和顯示文檔數(shù)據(jù)并接收輸入的客戶區(qū),其派生類主要有如下幾種:CScrollView:具有滾動功能的視的基類CFormView:其布局在對話資源中定義的滾動視CEditView:具有文本編輯、查找、替換和滾動功能的視1/31/202429精選課件其它可視對象類菜單類:CMenu類該類是CObject類的子類,用于管理菜單。它是一個WindowsHMenu的封裝,提供了與窗口有關(guān)的菜單資源建立、修改、跟蹤及刪除的成員函數(shù)。對話框類:CDialog類由于對話框是一個特殊的窗口,所以該類是從CWnd類中派生出來的。對話框子層次結(jié)構(gòu)包括通用對話框類CDialog以及支持文件選擇、顏色選擇、字體選擇、打印、替換文本的公共對話框子類。1/31/202430精選課件其它可視對象類控件類

控件子層次結(jié)構(gòu)包括若干類,使用這些類可建立靜態(tài)文本、命令按鈕、位圖按鈕、列表框、組合框、滾動條、編輯框等。這些直觀控件為Windows應(yīng)用程序提供了各種輸入和顯示界面。控件條類:CControlBar類

控件條子層次結(jié)構(gòu)為工具條、狀態(tài)條、對話條和分割窗口建立模型。該類是CToolBar、CStatusBar、CDialogBar的基類,負責(zé)管理工具條、狀態(tài)條、對話條的一些成員函數(shù)??丶l指的是連接在主窗口框架的頂部或底部的小窗口1/31/202431精選課件其它可視對象類繪畫對象類:CGdiObject類圖形繪畫對象子層次結(jié)構(gòu)以CGdiObject類為根類,可用于建立繪畫對象模型,如畫筆、刷子、字體、位圖、調(diào)色板等。設(shè)備描述表類:CDC類該類及其子類支持設(shè)備描述表對象,是CObject類的子類。CDC類是一個較大的類,包括許多成員函數(shù),如映射函數(shù)、繪畫工具函數(shù)、區(qū)域函數(shù)等,通過CDC對象的成員函數(shù)可以完成所有的繪畫工作1/31/202432精選課件CFrameWnd類CFrameWnd類是CWnd類的派生類,主要用來掌管一個窗口,它取代了SDK應(yīng)用程序中窗口函數(shù)WndProc()的地位。CFrameWnd類的對象是一個框架窗口,包括邊框、標題欄、菜單、最大化按鈕、最小化按鈕和一個激活的視圖。CFrameWnd支持SDI界面,對于MDI界面,使用其兩個派生類CMDIFrameWnd和CMDIChildWnd。CFrameWnd提供了若干個成員函數(shù)用于獲得和設(shè)置活動文檔、視圖、圖文框、標題欄、狀態(tài)欄等操作。

1/31/202433精選課件CDocument和CView類CDocument類在應(yīng)用程序中作為用戶文檔類的基類,它代表了用戶存儲或打開的一個文件。CDocument類的主要功能是把對數(shù)據(jù)的處理從對用戶的界面處理中分離出來,同時提供了一個與視圖類交互的接口。

CDocument類支持標準的文件操作,如創(chuàng)建、打開和存儲一個文檔等。CView類是MFC中一個很基本的類,它作為其它MFC視圖類和用戶視圖派生類的基類。1/31/202434精選課件通用類此類提供了許多通用服務(wù),例如文件I/O、診斷和異常處理等,此外還包括如數(shù)組和列表等存放數(shù)據(jù)集的類1.文件類:CFile類和CArchive類用以編寫輸入輸出處理函數(shù)2.異常類:CException類是所有異常情況的基類。不能直接建立CException對象,只能建立派生類的對象,用派生類來捕獲指定的異常情況3.模板收集類這些類可以將多種對象存放到數(shù)組、列表和“映射”中。但這些收集類是模板,它們的參數(shù)確定了存放在集合中的對象類型。1/31/202435精選課件MFC中全局函數(shù)和全局變量以Afx為前綴的函數(shù)(數(shù)據(jù)庫類函數(shù)和DDX函數(shù)除外)和變量,在目前的版本中,都表示全局函數(shù)或全局變量。

AfxAbort: 無條件終止一個應(yīng)用程序AfxBeginThread: 創(chuàng)建一個新線程并執(zhí)行它AfxEndThread: 終止當前正在執(zhí)行的線程AfxFormatString: 格式化字符串AfxMessageBox: 顯示一個Windows消息框AfxGetApp: 返回當前應(yīng)用程序?qū)ο蟮闹羔楢fxGetAppName: 返回應(yīng)用程序的名稱AfxGetMainWnd: 返回指向應(yīng)用程序主窗口的指針 AfxGetInstanceHandle:返回標識當前應(yīng)用程序?qū)ο蟮木浔鶤fxRegisterWndClass:注冊用于創(chuàng)建Windows窗口的窗口類1/31/202436精選課件例如調(diào)用AfxMessageBox函數(shù)將彈出一個消息框,其功能與CWinApp中的DoMessageBox相同。AfxMessageBox原型如下:intAfxMessageBox(LPCTSTRlpszText,UINTnType=MB_OK,UINTnIDHelp=0)1/31/202437精選課件intAfxMessageBox(LPCTSTRlpszText,UINTnType=MB_OK,

UINTnIDHelp=0)

MB_ABORTRETRYIGNORE

MB_OKMB_OKCANCELMB_RETRYCANCEL

MB_YESNO

MB_YESNOCANCEL

1/31/202438精選課件常用的三種工程1、Win32ConsoleApplication(控制臺應(yīng)用程序)用于創(chuàng)建DOS控制臺的C/C++程序(WindowsDOS虛擬機下的DOS程序),簡稱DOS程序。2、Win32Application(Windows應(yīng)用程序:C或底層面向?qū)ο蟪绦颍┯糜趧?chuàng)建的WindowsC/API程序或MFCWindows程序(MFC:MicrsoftFoundationClasses,VC6.0預(yù)定了近二百三十個類)3、MFCAppWizard(MFCWindows程序)用向?qū)?chuàng)建MFCWindows程序,并生成應(yīng)用程序框架(即自動生成底層代碼)。編程時在原代碼基礎(chǔ)上增加新的應(yīng)用代碼即可。1/31/202439精選課件用Win32ConsoleApplication創(chuàng)建DOS控制臺程序

用Win32Application創(chuàng)建Windows程序

1、創(chuàng)建WindowsAPI程序

2、創(chuàng)建MFCWindows程序

1/31/202440精選課件用MFCAppWizard創(chuàng)建MFCWindows程序該工程創(chuàng)建程序的類型:1、Dialogbased;2、SDI;3、MDI例:用MFCAppWizard創(chuàng)建SDI單文檔面應(yīng)用程序,并在客戶區(qū)(100,100)處開始顯示“Hello,World!”的字符串。見操作演示。目錄MyMFC下例程

1/31/202441精選課件創(chuàng)建第一個MFC程序1/31/202442精選課件Step11/31/202443精選課件Step21/31/202444精選課件Step31/31/202445精選課件Step41/31/202446精選課件Step51/31/202447精選課件Step61/31/202448精選課件Step71/31/202449精選課件單文檔應(yīng)用程序創(chuàng)建的類CAboutDlg 對話框類CMyMFCApp 應(yīng)用程序類CMyMFCDoc 文檔類CMyMFCView 視圖類CMainFrame 框架類1/31/202450精選課件1/31/202451精選課件1/31/202452精選課件盡管每個應(yīng)用程序具體實現(xiàn)的功能不同,但同一類程序的基本結(jié)構(gòu)是相同的。因此,通常采用MFCAppWizard創(chuàng)建一個MFC應(yīng)用程序框架。MFC不僅僅是一個類庫,它還提供了一層建立在MFC類對象封裝上的附加應(yīng)用程序框架。應(yīng)用程序框架是為了生成一般的應(yīng)用程序所必需的各種軟組件的集成。類庫只是一種可以嵌入到任何程序中的、提供某些特定功能的類的集合。而應(yīng)用程序框架卻定制了應(yīng)用程序的結(jié)構(gòu)和源代碼,其中的類對象既相互獨立、又相互作用,形成一個統(tǒng)一的整體。MFC應(yīng)用程序框架1/31/202453精選課件MFC應(yīng)用程序框架提供了構(gòu)建應(yīng)用程序所需要的類,在程序運行時能夠生成運行時類的對象,如代表應(yīng)用程序?qū)ο蟆⑽臋n對象、視圖對象和框架窗口對象。應(yīng)用程序?qū)ο髏heApp是一個唯一的全局變量,它的主要功能是通過調(diào)用WinMain()主函數(shù)啟動程序的運行。MYMFC.CPP中代碼:CMyMFCApptheApp;MFC應(yīng)用程序框架也有一個作為程序入口點的WinMain()主函數(shù),但在源程序中看不見該函數(shù),它在MFC中已定義好并同應(yīng)用程序相鏈接。

應(yīng)用程序框架中的對象1/31/202454精選課件在MFC應(yīng)用程序的CWinApp派生類對象theApp是一個全局變量,代表了應(yīng)用程序運行的主線程。它在程序整個運行期間都存在,它的銷毀意味著運行程序的消亡。MFC應(yīng)用程序啟動時,首先創(chuàng)建應(yīng)用程序?qū)ο髏heApp,這時將自動調(diào)用應(yīng)用程序類的構(gòu)造函數(shù)初始化對象theApp,然后由應(yīng)用程序框架調(diào)用MFC提供的AfxWinMain()主函數(shù)。AfxWinMain()主函數(shù)首先通過調(diào)用全局函數(shù)AfxGetApp()獲取應(yīng)用程序?qū)ο髏heApp的指針pApp,然后通過pApp調(diào)用

溫馨提示

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

評論

0/150

提交評論