版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
VisualC++程式設(shè)計
VisualC++程式設(shè)計Windows的編程模式基於MFC的VisualC++編程模式Windows的編程模式Windows操作系統(tǒng)的特點Windows應(yīng)用程式設(shè)計的基本概念Windows應(yīng)用程式的結(jié)構(gòu)框架Windows應(yīng)用程式的工作模式Windows應(yīng)用程式的開發(fā)流程Windows操作系統(tǒng)的特點Windows是Microsoft公司開發(fā)的一種基於窗口的操作系統(tǒng),主要用於個人電腦系統(tǒng)其中最重要的是以下:1.友好的用戶介面2.高性能的搶佔式多任務(wù)操作3.動態(tài)鏈接庫4.有效的應(yīng)用程式設(shè)計介面(API)Win32APIWindows應(yīng)用程式Windows應(yīng)用程式…Windows應(yīng)用程式Win32子系統(tǒng)系統(tǒng)服務(wù)硬體層用戶態(tài)核心態(tài)Win32API主要由Win32子系統(tǒng)的三個動態(tài)鏈接庫實現(xiàn):
·USER32.DLL:負責(zé)處理用戶介面,包括鍵盤和滑鼠輸入、窗口和菜單管理等
·GDI32.DLL:負責(zé)在圖形設(shè)備(包括顯示器和印表機)上執(zhí)行繪圖操作
·KERNEL32.DLL:操作系統(tǒng)核心功能服務(wù),包括進程和線程式控制制、記憶體管理和文件訪問等Windows應(yīng)用程式設(shè)計的基本概念Windows應(yīng)用程式是面向?qū)ο蟮?。它的這些面向?qū)ο蟮奶蒯缤ㄟ^其特有程式設(shè)計模式表現(xiàn)出來。這種特有的程式設(shè)計模式主要包含如下三方面的內(nèi)容:
·窗口為核心的用戶介面;
·以事件驅(qū)動為動力的程式運行機制;
·程式代碼與用戶介面分別處理。窗口窗口是由應(yīng)用程式創(chuàng)建的、系統(tǒng)顯示器上的一個用於接收用戶輸入和顯示輸出的矩形區(qū)域進一步說,窗口涉及如下一些概念:
·應(yīng)用程式只能通過窗口訪問系統(tǒng)顯示器,並且與其他應(yīng)用程式共用顯示器
·同一時間只有一個窗口是活動的;
·Windows允許應(yīng)用程式創(chuàng)建多個窗口,但每個應(yīng)用程式至少要創(chuàng)建一個窗口——主窗口作為用戶與應(yīng)用程式的主要介面;其他的窗口用於完成相關(guān)任務(wù),如對話框、消息框等;
·一旦創(chuàng)建了一個窗口,Windows就提供該窗口所對應(yīng)的各種交互資訊,並負責(zé)為應(yīng)用程式管理螢?zāi)?,控制窗口的位置和顯示,確保不會有兩個應(yīng)用程式的窗口衝突。
·一個應(yīng)用程式的窗口一般由標(biāo)題欄、菜單欄、工具欄、邊框、客戶區(qū)、滾動條等部件組成面向?qū)ο骔indows程式設(shè)計是面向?qū)ο蟮?,凡是與程式有關(guān)的實體,都稱為對象。為了對這眾多的對象進行管理,Windows在內(nèi)部為每個程式的對象要建立一個索引表。索引表的索引,就稱為“句柄”(Handle)。句柄的值是一個數(shù)字公共Windows對象及其句柄對象句柄對象句柄快捷鍵表 HACCEL位圖 HBITMAP畫刷 HBRUSH游標(biāo) HCURSOR設(shè)備描述表 HDC檔 HFILE字體 HFONT圖標(biāo)
HICON菜單 HMENU調(diào)色板 HPALETTE畫筆 HPEN區(qū)域 HRGN窗口 HWND事件驅(qū)動一般地說,程式執(zhí)行的進程是由某種機制驅(qū)動進行的。目前可以把程式執(zhí)行進程的驅(qū)動分為兩種類型:1)過程驅(qū)動2)事件驅(qū)動過程驅(qū)動採用過程驅(qū)動的程式一般由一系列的函數(shù)或過程組成。這些函數(shù)或過程具有預(yù)定的初始化、中間處理和輸出序列,以此控制程式的基本流程。由於這些序列是預(yù)定的,因此它具有面向系統(tǒng)性和主動性,在程式的執(zhí)行過程中,用戶的干預(yù)空間較小事件驅(qū)動採用事件驅(qū)動的程式不給程式預(yù)先規(guī)定一個執(zhí)行順序,程式一旦啟動,就處於等待狀態(tài),等待某種事件的發(fā)生;只要有用戶輸入事件發(fā)生,它就立刻接收事件並做出回應(yīng);處理完畢又立刻返回等待下一個事件的發(fā)生。這種迴圈等待方式,具有面向用戶性和被動性,可以給用戶提供較大的干預(yù)空間,讓用戶以各種合理的和可能的順序來安排程式的流程,特別適合交互性強的程式消息與消息迴圈Windows是一個多任務(wù)的操作系統(tǒng)環(huán)境。在這個平臺上,多個程式所以能有秩序地交織運行,就在於它採用了“消息傳送”(MessagePassing)機制消息處理是Windows應(yīng)用程式的核心。所有的Windows應(yīng)用程式都是消息驅(qū)動的。在Windows環(huán)境下,所有的外部輸入都被系統(tǒng)先攔截,轉(zhuǎn)換成消息之後,再傳送給程式中的目標(biāo)。目標(biāo)系統(tǒng)再根據(jù)消息的具體內(nèi)容進行相應(yīng)的處理Windows消息機制應(yīng)用程式1消息迴圈WinMain()窗口函數(shù)1窗口函數(shù)m…應(yīng)用程式佇列1應(yīng)用程式n消息迴圈WinMain()窗口函數(shù)1窗口函數(shù)m…應(yīng)用程式佇列n……系統(tǒng)消息佇列Windows事件發(fā)生檢索消息發(fā)送消息檢索消息發(fā)送消息Windows程式和消息的基本流程初始化
開始執(zhí)行
當(dāng)前消息是“退出”消息從消息佇列取得一個消息
終止執(zhí)行
是
否
是否當(dāng)前程式要處理的消息處理消息默認處理
否
是消息分類在Windows中,操作系統(tǒng)的各部分之間以及應(yīng)用程式之間,通過消息進行通信據(jù)統(tǒng)計大約有近千種消息,但從分佈來說,可以分為系統(tǒng)消息和應(yīng)用程式消息兩種類型。其中系統(tǒng)消息可分為如下三類
a)標(biāo)準(zhǔn)Windows消息
b)控件消息
c)命令消息消息的數(shù)據(jù)結(jié)構(gòu)消息定義成如下的一個結(jié)構(gòu)體:
a)目標(biāo)窗口句柄
b)消息標(biāo)識
c)參數(shù)wParam和lParam
Windows應(yīng)用程式的結(jié)構(gòu)框架Windows應(yīng)用程式的基本結(jié)構(gòu)具有固定性: 入口點函數(shù)WinMain
窗口函數(shù)構(gòu)成了Windows應(yīng)用程式的基本框架WinMain函數(shù)WinMain函數(shù)是Windows應(yīng)用程式的入口點WinMain函數(shù)用於完成一些特別的功能,其中最主要的是創(chuàng)建該應(yīng)用程式的主窗口,為此,多數(shù)程式需要執(zhí)行如下4部分操作:
1)註冊窗口類
2)創(chuàng)建窗口
3)顯示窗口
4)建立消息迴圈WinMain的例子#include<windows.h>LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);//窗口函數(shù)說明intWINAPIWinMain
( HINSTANCE hInstance, //應(yīng)用程式當(dāng)前實例句柄
HINSTANCE hPrevInst, //應(yīng)用程式其他實例句柄
LPSTR lpszCmdLine, //指向程式命令行參數(shù)的指針
int
nCmdShow
//應(yīng)用程式執(zhí)行時窗口顯示方式的標(biāo)識) { HWND hwnd; MSG Msg; //窗口類標(biāo)題
WNDCLASS wndclass; char lpszClassName[]=“示例窗口”;//窗口類名char lpszTitle[]=“窗口示例程式”; //窗口類標(biāo)題//-------------------註冊窗口類----------------------//wndclass.style=0; //窗口類型為缺省類型wndclass.lpfnWndProc=WndProc; //窗口處理函數(shù)為WndProcwndclass.cbClsExtra=0; //窗口類無擴展wndclass.cbWndExtra=0; //窗口實例無擴展wndclass.hInstance=hInstance; //當(dāng)前實例句柄wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);//使用缺省圖示wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);//窗口採用箭頭游標(biāo)wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); //窗口背景白色wndclass.lpszMenuName=NULL; //窗口中無菜單wndclass.lpszClassName=lpszClassName; //窗口類名為“窗口示例”if(!RegisterClass(&wndclass)){ //若註冊失敗則發(fā)出警告聲音MessageBeep(0);returnFALSE;}//----------------------創(chuàng)建窗口-----------------------//
hwnd=CreateWindow(
lpszClassName, //窗口類名
lpszTitle, //窗口實例標(biāo)題名
WS_OVERLAPPEDWINDOW, //窗口的風(fēng)格
CW_USEDEFAULT,CW_USEDEFAULT, //窗口左上角座標(biāo)為缺省值
CW_USEDEFAULT,CW_USEDEFAULT, //窗口的高和寬為缺省值
NULL, //此窗口無父窗口
NULL, //此窗口無主菜單
hIstance, //應(yīng)用程式的當(dāng)前例句
NULL); //不使用該值
//-----------------------顯示窗口----------------------//
ShowWindow(hwnd,nCmdShow); //顯示窗口
UpdateWindow(hwnd); //繪製用戶區(qū)
//----------------------建立消息迴圈---------------------//while(GetMessage(&Msg,NULL,0,0)){ //消息迴圈
TranslateMessage(&Msg);
DispatchMessage(&Msg);}returnMsg.wParam; //程式終止時將資訊返回系統(tǒng)}窗口函數(shù)每個窗口必須有一個窗口函數(shù)(或稱窗口過程)。窗口函數(shù)主要執(zhí)行兩方面的操作:
1)從Windows接收消息:這些消息或是由WinMain中通過消息迴圈發(fā)送的輸入消息,或是直接來自Windows系統(tǒng)的窗口管理消息 2)檢查每一條消息,進行相應(yīng)的處理:窗口函數(shù)由一系列的case語句組成,用於根據(jù)消息的類型執(zhí)行相應(yīng)的程式段窗口函數(shù)示例LRESULTCALLBACKWndProc(HWNDhwnd,UINT
message,WPARAM
wParam,LPARAM
lparam){switch(message){ caseWM_DESTROY: PostQuitMessage(0);//調(diào)用該函數(shù)發(fā)出WM_QUIT消息
default://缺省消息處理函數(shù)
returnDefWindowProc(hwnd,message,wParam,lparam);} return(0);}Windows應(yīng)用程式的工作模式應(yīng)用程式1消息迴圈WinMain()窗口函數(shù)1窗口函數(shù)m…應(yīng)用程式佇列1…系統(tǒng)消息佇列Windows用戶鍵入xxWindows應(yīng)用程式的過程1用戶利用中斷將鍵入字元x送入系統(tǒng)佇列2系統(tǒng)將字元x送入應(yīng)用程式佇列3應(yīng)用程式檢索應(yīng)用程式佇列4消息迴圈接收字元x5Windows從應(yīng)用程式得到譯成ANSI字元消息的WM_CHAR6Windows將WM_CHAR與原鍵盤消息發(fā)給窗口函數(shù)7窗口函數(shù)發(fā)出請求8Windows將字元x輸出到對應(yīng)的窗口Windows應(yīng)用程式的開發(fā)流程.LIB.BMP對話框編輯器資源編譯器文本編輯器.H圖象編輯器字體編輯器.ICO.CUR.FON.CPP.DLG.RCC++編譯器.OBJ.RES.DEF鏈接器.EXE源代碼編輯用戶介面資源編輯編輯編譯鏈接注釋.H 頭檔.CPP C++源代碼檔.OBJ 目標(biāo)檔.DLG 對話框檔(二進位).BMP 位圖文件(二進位).ICO 圖示檔(二進位).CUR 游標(biāo)檔(二進位).FON 字體檔(二進位).RC 資源描述檔.RES 資源檔(二進位).LIB 庫檔(二進位).DEF 模組定義檔.EXE 可執(zhí)行檔(二進位)基於MFC的VisualC++編程模式集成開發(fā)環(huán)境DeveloperStudio用MFCAppWizard生成一個簡單程式的過程VisualC++應(yīng)用程式結(jié)構(gòu)MFC應(yīng)用程式的控制MFC類庫層次結(jié)構(gòu)
基於MFC的VisualC++編程模式VisualC++是在Windows操作系統(tǒng)支持下的一種C++程式開發(fā)平臺。它的優(yōu)勢是它提供了一個集成有編輯、編譯、連接、調(diào)試等程式開發(fā)工具,更重要的是提供了全方位的自動編程服務(wù)工具——編程嚮導(dǎo)Wizard的集成開發(fā)環(huán)境——DeveloperStudio它是基於MFC的。類庫是一個可以在應(yīng)用程式中使用的相互關(guān)聯(lián)的C++類的集合。MFC不僅包含了C++的基類,還包含了WinMain函數(shù)以及其他一些支持標(biāo)準(zhǔn)菜單、常見消息處理、窗口滾動等功能的元素和API函數(shù),功能涉及到整個Windows操作系統(tǒng)MFC類庫不僅是預(yù)定義的類的集合,而且是一個應(yīng)用框架。它定義了應(yīng)用程式的結(jié)構(gòu),這個結(jié)構(gòu)把應(yīng)用程式與Windows的介面部分和應(yīng)用程式的其他部分結(jié)合成一個整體,有許多通用代碼是由系統(tǒng)自動生成的,不須程式員自己編寫,只要把非通用代碼填入指定的位置即可集成開發(fā)環(huán)境DeveloperStudioDeveloperStudio的特點DeveloperStudio的特點程式的開發(fā)過程,是由應(yīng)用程式嚮導(dǎo)引導(dǎo)完成的,便於學(xué)習(xí)掌握每個應(yīng)用程式都有大致相同的結(jié)構(gòu),這些相同的部分用同樣的代碼描述提供了一套功能強大的基礎(chǔ)類庫,即微軟基礎(chǔ)類庫MFC引入了文檔-視圖結(jié)構(gòu)在MFC中用指針來標(biāo)識對象提供強有力的資源管理功能以專案作為應(yīng)用程式開發(fā)的基本單位AppWizard可以建立三種類型的應(yīng)用程式結(jié)構(gòu)MDI:多文檔介面,允許同時打開多個文檔,多用於像Word,Excel那樣的規(guī)模比較大的應(yīng)用程式SDI:單文檔介面,一次只允許打開一個文檔DialogbasedDialogbased:基於對話的應(yīng)用程式,不支持文檔/視圖結(jié)構(gòu),僅顯示一個簡單的對話框,主要用於編寫小程式
多文檔與單文檔介面應(yīng)用程式的外觀DeveloperStudio介面狀態(tài)態(tài)專案窗口資訊窗口用戶操作窗口檔頁、資源頁、類頁間切換DeveloperStudio包含了標(biāo)題、菜單、工具條、狀態(tài)條等部件。此外,還配置了專案工作窗口(專案工作區(qū))、用戶操作窗口、資訊窗口等3個窗口:①專案工作窗口(Projectworkspace):包含正在開發(fā)的專案的資訊,能夠分頁顯示當(dāng)前專案中的類(Class)、檔(Files)、資源(Resource)等構(gòu)造情況②用戶操作窗口:對在專案工作窗口中選中的內(nèi)容進行根源程式或資源的編輯等操作③資訊窗口:進行編譯及鏈接操作時,給出編譯、鏈接情況的資訊(如,構(gòu)成專案的每個程式名,錯誤資訊等)用MFCAppWizard生成一個簡單程式的過程使用MFCAppWizard[exe]製作程式框架在OnDraw(CDC*pDC)函數(shù)中增加代碼製作程式框架的操作步驟準(zhǔn)備:確定專案名和專案目錄創(chuàng)建程式框架製作可執(zhí)行檔運行程式確定專案名和存儲目錄
選擇projects項輸入專案名
輸入目錄名
選擇平臺
選擇應(yīng)用嚮導(dǎo)創(chuàng)建框架程式的步驟
選擇文檔介面
選擇資源語言介面樣本
進入下一步創(chuàng)建框架程式的步驟在菜單條中選擇Projects在Projects菜單窗口中選擇MFC嚮導(dǎo)在Location
對話框中輸入存放專案的工作目錄名在ProjectName對話框中輸入專案名,專案名就是最終的應(yīng)用程式名從Platforms列表框中選擇可用的目標(biāo)平臺單擊OK按鈕創(chuàng)建程式框架完成MFC嚮導(dǎo)進行的操作選擇資料庫支持選擇複合文檔支持附加功能設(shè)置選擇是否在由嚮導(dǎo)及類嚮導(dǎo)生成的源代碼中附加注釋和鏈接庫的類型確定由AppWizard生成的類名和文件名創(chuàng)建框架的步驟之4、5創(chuàng)建框架的步驟之6框架程式的組成資訊製作可執(zhí)行檔在專案工作窗口的下端單擊“File..”(FilesView)按鈕點擊OutTextFiles,便展示出從“OutTextFiles”生長出的一個幫助檔ReadMe.txt和三個檔夾:
·SourceFiles(根源程式檔夾)
·HeaderFiles(頭檔檔夾)
·ResourceFiles(資源檔檔夾)在DeveloperStudio窗口中單擊菜單項的Build打開Build菜單,再單擊BuildOutText.exe
(或者直接按F7鍵),DeveloperStudio便開始編譯和鏈接,同時在輸出窗口中顯示出編譯和鏈接的資訊製作可執(zhí)行檔
製作可執(zhí)行檔(包含編譯和鏈接)執(zhí)行檔程式)
展示OutTextFiles檔夾根源程式檔夾頭檔檔夾資源檔檔夾幫助檔單擊“File..按鈕編譯和鏈接資訊運行程式運行程式的方法有3種:
·在DeveloperStudio窗口中打開Build菜單,單擊ExecuteOutText.exe
·在DeveloperStudio集成環(huán)境中按Ctrl+F5鍵
·不在DeveloperStudio集成環(huán)境中時,可在資源管理器中進入OutText檔夾,再進入Debug子檔夾,雙擊圖示表示的檔框架程式的執(zhí)行結(jié)果主窗口標(biāo)題欄菜單條工具條執(zhí)行New操作打開的子窗口執(zhí)行Open操作打開的對話框OnDraw(CDC*pDC)函數(shù)中增加代碼在專案工作區(qū)依次執(zhí)行:單擊FilesView
按鈕→雙擊OutTextfiles
選擇項→雙擊SourceFiles→雙擊OutTextView.cpp,在客戶編輯窗口中就會顯示出OutTextView.cpp的原始檔案代碼插入上面所示的一行代碼後,將專案OutText
重新編譯、鏈接(單擊Build打開Build菜單,再單擊BuildSteleton.exe
或者直接按F7鍵)就生成了可執(zhí)行檔OutText.EXE
文本輸出程式的結(jié)果VisualC++應(yīng)用程式結(jié)構(gòu)VisualC++應(yīng)用程式的邏輯構(gòu)件——對象VisualC++應(yīng)用程式的存儲結(jié)構(gòu)——檔應(yīng)用程式的邏輯構(gòu)件——對象面向?qū)ο蟮某淌接蓪ο蠼M成。程式設(shè)計的任務(wù)是根據(jù)給定的問題對涉及到的對象進行分類,接下來的任務(wù)就是定義各對象類,並書寫實現(xiàn)這些類的代碼以及實現(xiàn)對象間消息傳遞的代碼VisualC++主要的組成部分
文檔對象:用於存放應(yīng)用程式的數(shù)據(jù)和文件視圖對象:管理視圖窗口,顯示用戶數(shù)據(jù),接收用戶對數(shù)據(jù)的滑鼠、鍵盤操作,並傳送給文檔類對象。文檔類對象必須通過視圖類對象才能實現(xiàn)與用戶的交互應(yīng)用程式對象:控制應(yīng)用程式的所有對象,包括文檔、視圖和邊框窗口,並完成應(yīng)用程式的初始化工作和程式退出的清除工作主窗口對象:主要用於管理主程序的窗口,顯示標(biāo)題欄、工具欄、狀態(tài)欄,處理窗口操作消息應(yīng)用程式類構(gòu)成一個對話框應(yīng)用程式由一個應(yīng)用程式類和一個對話框類構(gòu)成一個SDI應(yīng)用程式由應(yīng)用程式類、框架類、文檔類和視圖類構(gòu)成一個MDI應(yīng)用程式由應(yīng)用程式類、主框架類、子框架類、文檔類和視圖類構(gòu)成名為Xxxx的MDI應(yīng)用程式為例應(yīng)用程式類(由CWinApp類派生)文檔類(由CDocument類派生)視圖類(由CView類派生)主框架類(由CMDIFrameWnd類派生)子框架類(由CMDIChildWnd類派生)應(yīng)用程式類缺省的名字:
·類名:CXxxxApp ·類的頭檔案名:Xxxx.h ·類的實現(xiàn)檔案名:Xxxx.cpp功能:
·控制應(yīng)用程式的所有對象
·應(yīng)用程式的初始化
·創(chuàng)建主窗口
·處理消息迴圈,從Windows操作系統(tǒng)中獲取資訊分發(fā)給程式窗口
·退出應(yīng)用程式
·關(guān)閉應(yīng)用文檔類
缺省的名字: 類名:CXxxxDoc
類的頭檔(定義該類)名:XxxxDoc.h
類的實現(xiàn)檔案名:XxxxDoc.cpp功能:存放程式數(shù)據(jù)並實現(xiàn)檔保存和裝載視圖類缺省的名字: 類名:CXxxxView
類的頭檔案名:XxxxView.h
類的實現(xiàn)檔案名:XxxxView.cpp功能:指定用戶與文檔間的交互形式主框架類缺省的名字:
·類名:CMainFrame ·類的頭檔案名:MainFrm.h ·類的實現(xiàn)檔案名:MainFrm.cpp功能:管理應(yīng)用程式窗口,顯示標(biāo)題欄、菜單欄、工具欄、狀態(tài)欄、控制菜單和控制按鈕,包容子框架窗口子框架類缺省的名字:
·類名:CChildFrame ·類的頭檔案名:ChildFrm.h ·類的實現(xiàn)檔案名:ChildFrm.cpp功能:管理應(yīng)用程式窗口,無自己的菜單欄、工具欄、狀態(tài)欄,但可與主框架類共用應(yīng)用程式的存儲結(jié)構(gòu)——檔從物理上來看,VisualC++程式是由一些檔組成的4個主要組成部分各自由不同的檔描述。一般說來,每一個主要的類都由兩類檔支持:一類的尾碼為.h,主要用於該類的定義(派生關(guān)係以及組成成員)等一類的尾碼為.cpp,主要用於描述該類的實現(xiàn)(寫成員函數(shù)的代碼)等AppWizard生成一系列檔自述檔ReadMe.txt
專案檔(PRJNAME.dsp
、PRJNAME.clw
)應(yīng)用程式原始檔案和頭檔資源檔預(yù)定義的檔:STDAFX.h和STDAFX.cpp
上下文敏感的幫助檔按可選項增加的AppWizard檔應(yīng)用程式原始檔案和頭檔PRJNAME.h:應(yīng)用程式的應(yīng)用程式類的頭檔PRJNAME.cpp:應(yīng)用程式的應(yīng)用程式類的實現(xiàn)檔,包含應(yīng)用類的具體實現(xiàn)代碼和消息映射MainFrame.h:應(yīng)用程式框架窗口類的頭檔MainFrame.cpp:應(yīng)用程式框架窗口類的實現(xiàn)檔ChildFrm.h:應(yīng)用程式子框架窗口類的頭檔ChildFrm.cpp:應(yīng)用程式子框架窗口類的實現(xiàn)檔PRJNADoc.h:應(yīng)用程式文檔類的頭檔PRJNADoc.cpp:應(yīng)用程式文檔類的實現(xiàn)檔,實現(xiàn)文檔的初始化、保存、裝入、調(diào)試診斷PRJNAView.h:應(yīng)用程式視圖類的頭檔PRJNAView.cpp:應(yīng)用程式視圖的實現(xiàn)檔,實現(xiàn)文檔數(shù)據(jù)的顯示、列印資源檔PRJNAME.rc:專案的資源檔Resource.h:資源頭檔,包含了標(biāo)準(zhǔn)MFC的資源——標(biāo)準(zhǔn)的菜單、加速鍵和字串表res\
PRJNAME.ico:應(yīng)用程式的圖示檔res\
PRJNDoc.ico:MDI應(yīng)用程式的子窗口圖示檔res\TOOLBAR.hmp:位圖文件,指定了支持工具條時,用於創(chuàng)建級聯(lián)圖象res\PRJNAME.rc2:AppStudio尚未建立和編輯的資源的資源檔MFC應(yīng)用程式的控制文檔範(fàn)本應(yīng)用程式的控制文檔範(fàn)本MFC用文檔範(fàn)本(DocumentTemplate)類的對象來存儲程式文檔、視圖和框架窗口有關(guān)的資訊,提供MFC用來將文檔、視圖和框架結(jié)合在一起的框架結(jié)構(gòu),以協(xié)調(diào)框架窗口、文檔對象和視圖對象之間的關(guān)係MFC類庫提供有兩種文檔範(fàn)本:
·CSingleDocTemplate:用於SDI應(yīng)用程式,每次只能創(chuàng)建和管理一個文檔。
·CMultiDocTemplate:用於MDI應(yīng)用程式,每次可以創(chuàng)建和管理多個文檔。應(yīng)用程式的控制應(yīng)用程式啟動//創(chuàng)建全局對象CxxxApptheApp;CXxxApp(){}InitInstance(){創(chuàng)建並註冊程式窗口、文檔範(fàn)本、文檔、視圖等}CWinApp(){//建立全局指針,用於調(diào)用//WinApp成員函數(shù)}Run(){消息迴圈}ExitIstance(){終止應(yīng)用程式的一副本}初始化應(yīng)用程式應(yīng)用程式運行應(yīng)用程式結(jié)束///入口函數(shù)AfxWinMain(){
調(diào)用調(diào)用調(diào)用}應(yīng)用程式處理內(nèi)容Xxx.cppWindows系統(tǒng)CXxxApp類基類CWinApp類說明初始化:AfxWinMain()調(diào)用CXxxApp類對象的成員函數(shù)InitInstance(),初始化應(yīng)用程式,構(gòu)造文檔範(fàn)本,產(chǎn)生最初的文檔、視圖和主框架窗口等運行應(yīng)用程式:AfxWinMain()調(diào)用CXxxApp類對象的成員函數(shù)Run(),處理消息迴圈結(jié)束應(yīng)用程式:AfxWinMain()調(diào)用CXxxApp類對象的成員函數(shù)ExitInstance()一個簡單的MFC程式的執(zhí)行流程
intAFXAPIAfxWinMain
(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPTSTRlpCmdLine,int
nCmdShow){ASSERT(hPrevInstance==NULL);int
nReturnCode=-1;CWinThread*pThread=AfxGetThread(); CWinApp*pApp=AfxGetApp();//AFXinternalinitializationif(!AfxWinInit(hInstance,hPrevInstance,lpCmdLine,nCmdShow))
goto
InitFailure;//Appglobalinitializations(rare)if(pApp!=NULL&&!pApp->InitApplication())
goto
InitFailure;//Performspecificinitializationsif(!pThread->InitInstance()) //注1{ if(
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來五年大宗棉花企業(yè)縣域市場拓展與下沉戰(zhàn)略分析研究報告
- 未來五年工礦混凝土工程市場需求變化趨勢與商業(yè)創(chuàng)新機遇分析研究報告
- 燃氣管道安全隱患排查方案
- 施工現(xiàn)場安全資料檔案管理方案
- 2025年中職護理解剖題庫附答案
- 青少年興趣班課程開發(fā)方案
- 安全員A證考試模擬卷包附完整答案詳解【典優(yōu)】
- 品牌形象管理部門工作制度
- 2026年零售行業(yè)數(shù)字化協(xié)議
- 安全員A證考試題庫(得分題)打印附完整答案詳解(奪冠)
- 2024年風(fēng)電、光伏項目前期及建設(shè)手續(xù)辦理流程匯編
- 不良資產(chǎn)合作戰(zhàn)略框架協(xié)議文本
- 先進班級介紹
- 2025年浙江省輔警考試真題及答案
- 2025中國熱帶農(nóng)業(yè)科學(xué)院科技信息研究所第一批招聘4人備考題庫(第1號)附答案
- 雨課堂學(xué)堂在線學(xué)堂云《婚姻家庭法(武漢科大 )》單元測試考核答案
- 安徽寧馬投資有限責(zé)任公司2025年招聘派遣制工作人員考試筆試模擬試題及答案解析
- 2025版北師大版小學(xué)數(shù)學(xué)一年級上冊專項練習(xí)卷
- 酒店簽訂就餐協(xié)議合同
- DB51-T 192-2024 公園城市綠色景觀圍墻營建指南
- 《食品標(biāo)準(zhǔn)與法規(guī)》課件全套 第1-6章 緒論-食品生產(chǎn)經(jīng)營許可和認證管理
評論
0/150
提交評論