Visual C++程序設(shè)計教程(第二版)課件:構(gòu)造應(yīng)用程序框架_第1頁
Visual C++程序設(shè)計教程(第二版)課件:構(gòu)造應(yīng)用程序框架_第2頁
Visual C++程序設(shè)計教程(第二版)課件:構(gòu)造應(yīng)用程序框架_第3頁
Visual C++程序設(shè)計教程(第二版)課件:構(gòu)造應(yīng)用程序框架_第4頁
Visual C++程序設(shè)計教程(第二版)課件:構(gòu)造應(yīng)用程序框架_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

構(gòu)造應(yīng)用程序框架

3.1單文檔應(yīng)用框架

所謂的單文檔(SDI)界面應(yīng)用程序,是指在應(yīng)用程序中一次只能打開一個文件處理。打開下一個文件之前,必須先關(guān)閉上一個打開的文件,才能執(zhí)行下一個打開操作。對于涉及文檔較少的程序,只容許處理單個文檔的程序或執(zhí)行其它功能。2024/11/11VisualC++程序設(shè)計教程-2創(chuàng)建過程

創(chuàng)建工程。按照前一章創(chuàng)建工程的步驟創(chuàng)建一個工程,類型為SDI,工程名為Eg3_1,其他選項取默認值。單擊“OK”按鈕,AppWizard就開始創(chuàng)建應(yīng)用的子目錄、文件和類。添加自己的代碼:

2024/11/11VisualC++程序設(shè)計教程-3創(chuàng)建過程(續(xù))擴充Eg3_1View.cpp中的OnDraw成員函數(shù):voidCEg3_1View::OnDraw(CDC*pDC){ CEg3_1Doc*pDoc=GetDocument(); ASSERT_VALID(pDoc); //TODO:adddrawcodefornativedatahere

pDC->TextOut(60,100,"Hello,WelcometoVisualC++6.0!");}

2024/11/11VisualC++程序設(shè)計教程-4創(chuàng)建過程(續(xù))更改應(yīng)用程序的標題:選擇工作區(qū)中ResourceVies標簽,展開Eg3_1Resources|StringTable,雙擊StringTable,彈出字符串資源表。雙擊IDR_MAINFRAME項,彈出StringProperties對話框。在Caption編輯框中將標題修改為“單文檔應(yīng)用程序\nEg3_1”。編譯、鏈接并運行。

2024/11/11VisualC++程序設(shè)計教程-5CEg3_1App應(yīng)用程序運行過程

CWinApp類創(chuàng)建的實例theApp,整個程序有且只有一個,一切由它開始,最后以它結(jié)束。VisualC++所產(chǎn)生的代碼首先通過初始化數(shù)據(jù)段來建立全局變量,以及建立一些MFC內(nèi)部使用的對象,然后執(zhí)行CWinApp類的構(gòu)造函數(shù)。

2024/11/11VisualC++程序設(shè)計教程-6CEg3_1App應(yīng)用程序運行過程(續(xù))一旦所有靜態(tài)對象的構(gòu)造函數(shù)都執(zhí)行完畢,運行時間庫就會調(diào)用WinMain()函數(shù),該函數(shù)初始化MFC應(yīng)用,并調(diào)用CWinApp類的InitInstance()函數(shù)。完成了這些工作后,WinMain()函數(shù)調(diào)用CWinApp類的Run()函數(shù),通常默認為CWinThread::Run(),用來得到應(yīng)用程序的消息循環(huán),或稱消息隊列。

2024/11/11VisualC++程序設(shè)計教程-7CEg3_1App應(yīng)用程序運行過程(續(xù))當程序接收到WM_QUIT消息,就意味著程序終止。這時,MFC會調(diào)用CWinApp類的ExitInstance(),然后是靜態(tài)對象的析構(gòu)函數(shù),包括CWinApp對象,然后將控制權(quán)交還操作系統(tǒng)。

2024/11/11VisualC++程序設(shè)計教程-83.2多文檔應(yīng)用框架

多文檔(MDI)接口應(yīng)用程序是指一個應(yīng)用程序可以同時打開多個文件進行處理。

MDI是大多數(shù)應(yīng)用程序采用的形式。Microsoft公司的Word應(yīng)用軟件就是一個典型的多文檔應(yīng)用。

2024/11/11VisualC++程序設(shè)計教程-9單文檔應(yīng)用程序和多文檔應(yīng)用程序的比較

在MDI程序中許多程序的細節(jié)是與SDI程序是相同的。在MDI程序中使用了CMultiDocTemplate模板,以便程序能夠處理多個文檔,同時也將視圖和文檔類連接到該模板及CChildFrame類,CChildFrame類支持出現(xiàn)在主窗口內(nèi)部的MDI子窗口。

2024/11/11VisualC++程序設(shè)計教程-103.3基于對話框的應(yīng)用框架

基于對話框的應(yīng)用程序,是以對話框為形式的應(yīng)用程序,它對于那些涉及文檔較少,主要是交互式操作的應(yīng)用程序來說比較合適。 基于對話框的應(yīng)用框架和前面介紹的基于文檔的應(yīng)用框架有很大的區(qū)別。

2024/11/11VisualC++程序設(shè)計教程-11創(chuàng)建過程

在AppWizard的第一步,即MFCAppWizard--Step1中,選中“Dialogbased”單選框按鈕。在第四步,AppWizard會顯示出它將幫助用戶創(chuàng)建的類及屬性。在這個基于對話框的應(yīng)用中只有兩個類被創(chuàng)建。一個是應(yīng)用類CEg3_3App,另一個是對話框類CEg3_3Dlg。

2024/11/11VisualC++程序設(shè)計教程-12創(chuàng)建過程(續(xù))修改對話框資源: 在Textproperties對話框中,將Caption框中的“TODO:在這里設(shè)置對話控制?!眲h除,改成為“Hello,WelcometoVisualC++!”。編譯、鏈接、運行。

注意:基于對話框的應(yīng)用框架和基于文檔的應(yīng)用框架的區(qū)別在于實現(xiàn)對話框的第一步是創(chuàng)建一個對話框?qū)ο骴lg,然后通過調(diào)用對話類的成員函數(shù)DoModal()來顯示對話框。2024/11/11VisualC++程序設(shè)計教程-133.4程序運行流程分析

Windows的編程模式:

Windows程序運行總是由WinMain()函數(shù)開始,該函數(shù)主要是建立應(yīng)用程序的主窗口。Windows程序通過操作系統(tǒng)發(fā)送的消息來處理用戶輸入,程序的主窗口中需要包含處理Windows所發(fā)送消息的代碼。

2024/11/11VisualC++程序設(shè)計教程-14MFC應(yīng)用程序的運行過程

2024/11/11VisualC++程序設(shè)計教程-15MFC應(yīng)用程序的運行過程(續(xù))MFC的應(yīng)用程序運行過程如下:1.應(yīng)用程序定義一個應(yīng)用類全局對象。2.應(yīng)用類對象的構(gòu)造函數(shù)開始執(zhí)行。3.構(gòu)造函數(shù)執(zhí)行完后,調(diào)用初始化函數(shù)InitInstance()。4.在函數(shù)InitInstance()中,構(gòu)造文檔模板。5.構(gòu)造文檔模板時,按照生成一個文檔的順序先產(chǎn)生一個最初的文檔、視主框架。6.函數(shù)InitInstance()生成工具條和狀態(tài)條,以及其它用戶需要的工具。

7.函數(shù)InitInstance()執(zhí)行完成后,應(yīng)用程序處于等待消息的狀態(tài)。

2024/11/11VisualC++程序設(shè)計教程-16三種應(yīng)用程序框架的異同

相同:每個應(yīng)用程序的應(yīng)用類都會自動創(chuàng)建一個InitInstance()函數(shù)

相異:單文檔應(yīng)用程序中,應(yīng)用類的對象由應(yīng)用框架構(gòu)造,使用單文檔模板類CSingleDocTemplate的對象來構(gòu)造文檔模板。

2024/11/11VisualC++程序設(shè)計教程-17三種應(yīng)用程序框架的異同(續(xù))MDI應(yīng)用程序中,應(yīng)用類的對象同樣也由應(yīng)用框架構(gòu)造,使用多文檔模板類CMulitDocTemplate對象來構(gòu)造文檔模板?;趯υ捒虻膽?yīng)用程序中,首先在函數(shù)中生成一個對話框?qū)ο螅缓笤偻ㄟ^DoModal()函數(shù)來調(diào)用和

溫馨提示

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

評論

0/150

提交評論