




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
創建應用程序框架JSP程序設計教程》課件制作人:宋坤第一頁,共四十六頁,2022年,8月28日【學習導航】
課件制作人:宋坤第二頁,共四十六頁,2022年,8月28日√本章目錄4.1應用程序向導4.2應用程序向導生成的文件4.3ClassWizard類向導
4.4程序調試4.5課后習題√√√√課件制作人:宋坤第三頁,共四十六頁,2022年,8月28日4.1應用程序向導VisualC++中的向導類型使用應用程序向導√√課件制作人:宋坤第四頁,共四十六頁,2022年,8月28日VisualC++中的向導類型“File”/“New”菜單命令課件制作人:宋坤第五頁,共四十六頁,2022年,8月28日VisualC++中的向導類型VisualC++集成開發環境中向導類型及生成的程序說明如下:l
ATLCOMAppWizard:創建包含ActiveX控件的ATL(ActiveTemplateLibrary)。l
ClusterResourceTypeWizard:創建能夠在微軟群服務器上模擬和管理的項目。l
CustomAppWizard:以用戶定制的模板向導創建項目。l
DatebaseProject:創建數據庫項目。l
DevStudioAdd-inWizard:創建C++或匯編語言編寫的類似于DeveloperStudio形式的外接程序。l
ExtendedStoredProcWizard:在SQLServer上創建一個擴展存儲的程序。l
ISAPIExtensionWizard:利用ISAPI(InternetServerAPI)創建網頁瀏覽程序。l
Makefile:制作Makefile文件,訂制自己項目的集成開發環境。l
MFCAcitveXControlWizard:創建基于MFC的ActiveX控件。l
MFCAppWizard[dll]:創建基于MFC的動態連接庫。l
MFCAppWizard[exe]:創建基于MFC的應用程序,這是最常使用的一個向導。l
NewDatabaseWizard:在SQLServer上創建一個SQLServer數據庫。l
UtilityProject:創建自定義編譯規則的項目,該項目可以作為一些子項目的主項目,它不產生LIB、DLL或EXE文件。l
Win32Application:創建Win32應用程序,可不使用MFC,采用SDK方式編程或C語言編程。l
Win32Dynamic-LinkLibrary:創建Win32動態連接庫,采用SDK方法。l
Win32StaticLibrary:創建Win32靜態連接庫,采用SDK方法。、其中,最常使用的是MFCAppWizard[exe],這也是本章講述的重點。
課件制作人:宋坤第六頁,共四十六頁,2022年,8月28日使用應用程序向導Windows下可視化應用程序框架:(1)菜單欄“File”/“New”--New窗口--Projects選項卡--MFCAppWizard[exe]項課件制作人:宋坤第七頁,共四十六頁,2022年,8月28日使用應用程序向導
(2)單擊OK按鈕,彈出MFCAppWizard-Step1窗口lSingledocument:一次只能打開一個文檔編輯窗口。lMultipledocument:在應用程序中可同時打開多個文檔。lDialogbased:在對話框基礎上建立的程序。課件制作人:宋坤第八頁,共四十六頁,2022年,8月28日使用應用程序向導(3)這里選擇Dialogbased單選項,單擊Next按鈕,打開MFCAppWizard—Step2of4窗口課件制作人:宋坤第九頁,共四十六頁,2022年,8月28日使用應用程序向導(5)單擊Next按鈕,打開MFCAppWizard—Step3of4窗口。
課件制作人:宋坤第十頁,共四十六頁,2022年,8月28日使用應用程序向導(6)單擊Next按鈕,打開MFCAppWizard—Step4of4窗口課件制作人:宋坤第十一頁,共四十六頁,2022年,8月28日使用應用程序向導(7)在MFCAppWizard—Step4of4窗口中確定類的名稱及所在文件的名稱,單擊Finish按鈕,打開NewProjectInformation窗口。
課件制作人:宋坤第十二頁,共四十六頁,2022年,8月28日4.2應用程序向導生成的文件文件類型典型文件舉例√√課件制作人:宋坤第十三頁,共四十六頁,2022年,8月28日文件類型擴展名描述opt工程中關于開發環境的參數選項文件clw類向導文件信息,是按INI文件格式存儲的dsp工程文件dsw工作區文件,將項目的詳細情況組合到Workspace工作區中aps資源輔助文件,二進制格式plg編譯信息文件,存儲錯誤或警告信息hpj幫助文件bsc代碼瀏覽文件,如果使用源代碼瀏覽器,必須生成該文件map可執行文件的映像信息記錄文件pch預編譯文件,可以加快編譯速度pdb記錄了程序有關的一些數據和調試信息,在調試的時候有用exp只有在編譯DLL時才會生成,記錄DLL文件中的一些信息ncb無編譯瀏覽文件,當自動完成功能出問題時可以刪除此文件h頭文件cpp源文件rc資源文件rc2資源文件,用來將資源包含在項目中res編譯后的二進制資源文件
一般而言,VisualC++中一個類由頭文件和源文件兩類文件支持。頭文件用于定義類,包含指明派生關系,聲明成員變量及成員函數。源文件用于實現類,主要定義成員函數的實現代碼和消息映射。
課件制作人:宋坤第十四頁,共四十六頁,2022年,8月28日典型文件舉例利用MFCAppWizard[exe]向導生成一個應用程序,根據應用程序種類的不同,生成的文件也有所差異,下面將分類列舉。1.應用文件(1)應用程序類文件每個MFC應用程序都需要有一個應用程序類文件,它一般與項目文件同名,例如:在默認情況下,MyProject項目應用程序類頭文件為MyProject.h;源文件的文件名為“MyProject.cpp”,它們主要聲明及實現應用程序類CMyProjectApp。CMyProjectApp類主要負責完成應用程序的初始化、程序的啟動和程序運行結束時的清理工作。(2)資源文件在項目中,資源通過資源標識符加以區分,通常情況下,應用程序向導會把一個項目中所有資源的標識符放到Resource.h中。對資源ID的命名有一定規則,如表4-2所示。標識符前綴說
明IDR_主菜單資源、工具欄資源和快捷鍵資源IDD_對話框資源IDC_控件和光標IDS_字符串IDP_提示信息對話框的字符串ID_菜單命令項課件制作人:宋坤第十五頁,共四十六頁,2022年,8月28日典型文件舉例(3)標準包含文件應用程序向導會為每一個項目生成一個標準包含頭文件StdAfx.h,該文件用于包含一般情況下要用到且不會被修改的頭文件,如MFC聲明文件afxwin.h、使用工具欄、狀態欄文件afxext.h等。StdAfx.h和StdAfx.cpp文件用來生成預編譯文件。2.單文檔應用程序/多文檔應用程序單文檔應用程序和多文檔應用程序框架都是由3個類組成的,它們是框架窗口類、文檔類和視圖類。(1)框架窗口類文件在默認情況下,框架窗口的頭文件均為MainFrm.h;源文件均為MainFrm.cpp,這兩個文件定義和實現了框架窗口類CMainFrame,這個類是MFC的CFrameWnd類的派生類,它主要負責創建標題欄、工具欄和狀態欄。(2)文檔類文件在默認情況下,文檔類頭文件都是項目名稱+“Doc.h”組成;源文件都是項目名稱+“Doc.cpp”組成。例如:MyProject項目中文檔類頭文件為MyProjectDoc.h;源文件為MyProjectDoc.cpp。它們是定義和實現文檔類CMyProjectDoc的。CMyProjectDoc類是MFC中CDocument類的派生類,它主要負責應用程序數據的保存和裝載,實現文檔的序列化功能。(3)視圖類文件在默認情況下,視圖類頭文件都是項目名稱+“View.h”組成;源文件都是項目名稱+“View.cpp”組成。例如:MyProject項目中視圖類頭文件為MyProjectView.h;源文件為MyProjectView.cpp。它們是定義和實現視圖類CMyProjectView的。CMyProjectView類是MFC中CView類的派生類,它主要負責客戶區文檔數據的顯示及如何進行人機交互。
課件制作人:宋坤第十六頁,共四十六頁,2022年,8月28日典型文件舉例
3.基于對話框應用程序在默認情況下,對話框類頭文件都是項目名稱+“Dlg.h”組成;源文件都是項目名稱+“Dlg.cpp”組成。例如:MyProject項目中對話框類頭文件為MyProjectDlg.h;源文件為MyProjectDlg·cpp。它們是定義和實現對話框類CMyProjectDlg的。CMyProjectDlg類是MFC中CDialog類的派生類。它可以完成一個對話框的創建、顯示等工作。
課件制作人:宋坤第十七頁,共四十六頁,2022年,8月28日4.3ClassWizard類向導ClassWizard的功能ClassWizard的簡單應用為項目添加新類手工添加消息處理函數√√√√課件制作人:宋坤第十八頁,共四十六頁,2022年,8月28日ClassWizard的功能ClassWizard(類向導)主要用來定制現有的類和建立新的類,如把消息映射到類的成員函數,把一個控件與類的成員變量對應起來。只有在打開或創建一個項目后,View主菜單才會出現ClassWizard菜單項,這時才能使用ClassWizard(類向導)。一般通過<Ctrl+W>快捷鍵激活ClassWizard。“MFCClassWizard”對話框共有5個頁面:MessageMaps頁面用來處理消息映射,為消息添加或刪除處理函數,查看已被處理的消息并定位消息處理代碼;MemberVariables頁面用來給對話框類添加或刪除成員變量,這些變量必須是和某些控件資源相關聯的控件類型;Automation頁面提供了對OLE自動化類的屬性和方法的管理;ActiveXEvents頁面用于管理ActiveX類所支持的ActiveX事件;ClassInfo頁面顯示應用程序中所包含類的信息,如一個類的頭文件、實現文件和基類信息。圖4-8為“MFCClassWizard”對話框。課件制作人:宋坤第十九頁,共四十六頁,2022年,8月28日ClassWizard的簡單應用在編程時,經常使用的就是“MFCClassWizard”對話框中的MessageMaps頁面和MemberVariables頁面。下面圍繞著它們簡單介紹一下。1.怎樣為類添加一個消息響應函數(1)首先,建立一個基于對話框的應用程序。(2)單擊“View”/“ClassWizard”菜單命令打開“MFCClassWizard”對話框。(3)確定當前“為MessageMaps”頁面,在“ObjectIds”列表中選擇需要添加消息響應函數的對象;在“Messages”列表中選擇需要添加的消息,例如:本教材需要為對話框添加WM_INITDIALOG消息響應函數。就在“ObjectIDs”列表中選擇“CMyProjectDlg”,在“Messages”列表中找到“WM_INITDIALOG”并雙擊該列表項,此時,在“Memberfunctions”列表中會出現“OnInitDialog”,如圖4-9所示。
課件制作人:宋坤第二十頁,共四十六頁,2022年,8月28日ClassWizard的簡單應用
2.如何將一個控件與一個類的成員變量對應起來(1)首先,建立一個基于對話框的應用程序。(2)單擊“View”/“ClassWizard”菜單命令打開“MFCClassWizard”對話框。(3)確定當前“為MemberVariables”頁面,在“ControlIds”列表中找到需要對應成員變量的控件ID,例如:本教材需要為“確定”按鈕添加一個對應的變量m_ButOK,需要在ControlIds”列表中雙擊“確定”按鈕的資源ID“IDOK”,在彈出的“AddMemberVariable”對話框中找到“MemberVariableName”文本框,在此文本框中輸入“m_ButOK”,單擊OK按鈕完成添加操作。在函數名前有“W”標志的表示消息響應函數;有“V”標志的表示虛函數。課件制作人:宋坤第二十一頁,共四十六頁,2022年,8月28日為項目添加新類
為項目添加新類的方法如下:(1)首先,建立一個基于對話框的應用程序。(2)單擊“View”/“ClassWizard”菜單命令打開“MFCClassWizard”對話框。(3)單擊右上角“AddClass”按鈕,在彈出的菜單中選擇“New”菜單項,彈出“NewClass”對話框,如圖4-10所示。
課件制作人:宋坤第二十二頁,共四十六頁,2022年,8月28日為項目添加新類
(4)在“Name”文本框中添入“CNewClassName”,在“Baseclass”文本框中選擇需要創建的類的基類,單擊“OK”按鈕,將類CNewClassName添加到項目中,在Workspace工作區中就可以對這個類進行編輯了,如圖4-11所示。
課件制作人:宋坤第二十三頁,共四十六頁,2022年,8月28日手工添加消息處理函數
消息處理函數是VC++最常用到的函數之一,實際上,消息處理函數是通過在消息地圖中聲明來實現的。請看下邊的例子。手工為對話框類MyProject添加消息DIY_NEWMESSAGE(自定義消息)的消息響應函數OnNewMessage。(1)首先,建立一個基于對話框的應用程序MyProject。(2)單擊“View”/“ResourceSymbols”,彈出“ResourceSymbols”對話框。(3)在“ResourceSymbols”對話框中單擊“New”按鈕,為類添加一個新標識“DIY_NEWMESSAGE”,如圖4-12所示。
(4)關閉“ResourceSymbols”對話框,在Workspace中找到類CMyProjectDlg,雙擊CMyProjectDlg節點下的任意一個成員函數標識,代碼編輯器中顯示MyProjectDlg.cpp文件內容。(5)在代碼編輯器中找到下段代碼:BEGIN_MESSAGE_MAP(CMyProjectDlg,CDialog)END_MESSAGE_MAP()這是消息地圖的聲明。讀者需要在這個消息地圖中添加消息響應說明。BEGIN_MESSAGE_MAP(CMyProjectDlg,CDialog)ON_MESSAGE(DIY_NEWMESSAGE,OnNewMessage)END_MESSAGE_MAP()這句代碼告訴編譯器,當有DIY_NEWMESSAGE消息發生時,執行OnNewMessage成員函數。
課件制作人:宋坤第二十四頁,共四十六頁,2022年,8月28日手工添加消息處理函數
(6)在Workspace中選中類CMyProjectDlg的標識,單擊鼠標右鍵,在彈出的快捷菜單中選擇“AddMemberFunction”項,打開“AddMemberFunction”對話框。(7)在“AddMemberFunction”對話框中的“FunctionType”文本框中添入函數的返回值;在“FunctionDeclaration”文本框中添入“OnNewMessage”,單擊“OK”按鈕,將此函數添加到項目中,如圖4-13所示。
(8)這樣,一個消息響應函數就做成了,當系統捕捉到“DIY_NEWMESSAGE”消息時,會自動執行OnNewMessage成員函數。
課件制作人:宋坤第二十五頁,共四十六頁,2022年,8月28日4.4程序調試斷點跟蹤調試窗口√√課件制作人:宋坤第二十六頁,共四十六頁,2022年,8月28日斷點跟蹤F9鍵:設置斷點。<Ctrl+B>:打開斷點窗口。1.設置條件斷點在設計斷點時,可能需要設置一個條件斷點。所謂條件斷點,是在變量或表達式符合斷點條件時才產生中斷,進入調試階段。如圖4-14所示。課件制作人:宋坤第二十七頁,共四十六頁,2022年,8月28日斷點跟蹤(1)編寫一段代碼,如下:intsum=0;for(inti=0;i<10;i++){sum+=i;}(2)按Ctrl+B組合鍵打開斷點窗口,在“sum+=i”行處設置一個段點,如圖4-15所示。課件制作人:宋坤第二十八頁,共四十六頁,2022年,8月28日斷點跟蹤(3)單擊“Conditon”按鈕,打開斷點條件窗口,在該窗口中設置斷點條件,如圖4-16所示。
(4)運行程序,執行代碼,當變量i等于2時將產生中斷,如圖4-17所示。
課件制作人:宋坤第二十九頁,共四十六頁,2022年,8月28日斷點跟蹤
2.設置數據斷點數據斷點只能在Breakpoints對話框中設置。選擇“Data”選項卡,就顯示了設置數據斷點的對話框。在編輯框中輸入一個表達式,當這個表達式的值發生變化時,數據斷點就到達。一般情況下,這個表達式應該由運算符和全局變量構成。(1)定義一個全局變量,并編寫一段代碼,如下:voidCDebugDlg::OnOK(){intsum=0;for(i=0;i<10;i++)//i為一個整型全局變量{sum+=i;}}(2)按Ctrl+B組合鍵打開斷點窗口,選擇“Data”選項卡,在編輯框中輸入全局變量i,如圖4-18所示。課件制作人:宋坤第三十頁,共四十六頁,2022年,8月28日斷點跟蹤(3)單擊OK按鈕保存設置。運行程序,當程序試圖改變變量i的值時將產生中斷,進入調試階段,如圖4-19所示。(4)單擊“確定”按鈕,程序將停留在“改變i值”的代碼處,如圖4-20所示。
課件制作人:宋坤第三十一頁,共四十六頁,2022年,8月28日斷點跟蹤3.設置消息斷點VisualC++也支持對Windows消息進行截獲,有兩種方式進行截獲:窗口消息處理函數和特定消息中斷。在“Breakpoints”對話框中選擇“Messages”選項卡,就可以設置消息斷點。如果采用窗口消息處理方式,那么每次消息被這個函數處理,斷點就到達;如果采用特定消息中斷方式,則每次指定的消息到達,程序就中斷。(1)按<Ctrl+B>組合鍵打開斷點窗口,選擇“Messages”選項卡,如圖4-21所示。
(2)在上方的組合框中輸入窗口過程“AfxWndProc”,在下方的組合框中輸入產生中斷的消息,例如“WM-LBVTTONOOWN”,如圖4-22所示。課件制作人:宋坤第三十二頁,共四十六頁,2022年,8月28日斷點跟蹤(3)運行程序,當用戶單擊鼠標左鍵時將產生中斷,如圖4-23所示。
課件制作人:宋坤第三十三頁,共四十六頁,2022年,8月28日斷點跟蹤(4)單擊“確定”按鈕,程序將停留在AfxWndProc處,如圖4-24所示。4.斷點跟蹤前面本教材介紹了設置斷點的方法,下面介紹如何利用斷點跟蹤程序。(1)編寫一段代碼,并在代碼處設置一個斷點,如圖4-25所示。課件制作人:宋坤第三十四頁,共四十六頁,2022年,8月28日斷點跟蹤(2)運行程序,執行斷點所在的函數,程序將停留在斷點處,如圖4-26所示。
課件制作人:宋坤第三十五頁,共四十六頁,2022年,8月28日斷點跟蹤(3)按<F10>鍵執行當前行代碼,指針將移動到下一行代碼,同時sum的值被設置為0,用戶可以通過鼠標或調試窗口查看變量的值,如圖4-27所示。
課件制作人:宋坤第三十六頁,共四十六頁,2022年,8月28日斷點跟蹤(4)按<F10>鍵連續執行代碼,直到當前指針停留在“total=Add(10,2)”語句處,如圖4-28所示。課件制作人:宋坤第三十七頁,共四十六頁,2022年,8月28日斷點跟蹤(5)當前代碼涉及一個函數調用(Add函數),如果用戶按<F10>鍵,當前指針不會進入Add函數而繼續向下執行;如果用戶按<F11>鍵,當前指針會進入Add函數,在Add函數執行后重新返回被調用的函數處。按<F11>鍵進入Add函數,如圖4-29所示。課件制作人:宋坤第三十八頁,共四十六頁,2022年,8月28日斷點跟蹤課件制作人:宋坤第三十九頁,共四十六頁,2022年,8月28日調試窗口
1.Watch調試窗口Watch窗口主要用來查看變量或對象的信息。用戶可以通過單擊“View”/“DebugWindows”/“Watch”菜單項或者按<Alt+3>組合鍵打開Watch窗口,為了查看某個變量或對象的值,在程序處于中斷時,用戶可以利用鼠標將其拖動到Watch窗口中,這樣,在Watch窗口中將顯示變量或對象的詳細信息,如圖4-30所示。
2.CallStack窗口CallStack窗口能夠查看當前函數的調用信息。例如函數的參數信息,調用當前函數的參數等。CallStack窗口如圖4-31所示。
課件制作人:宋坤第四十頁,共四十六頁,2022年,8月28日調試窗口
從圖4-31中可以看出當前函數為Add,參數值分別為10、20,在InitInstance方法中調用了Add方法。當用戶在CallStack窗口中雙擊InitInstance方法時,代碼編輯器將進入到InitInstance方法,并顯示在該方法何處調用了Add方法,如圖4-32所示。
3.Memory窗口Memory窗口用于顯示某個地址開始處的內存信息,默認地址為0x00000000。用戶可以通過單擊“View”/“DebugWindows”/“Memory”菜單項或者按<Alt+6>組合鍵打開Memory窗口,如圖4-33所示。課件制作人:宋坤第四十一頁,共四十六頁,2022年,8月28日調試窗口
在調試程序時,使用Memory窗口查看某個對象或變量的地址信息及值信息。例如,將某個變量拖動到Memory窗口的列表中,在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 領導科學考試背景與重要性分析試題及答案
- 網絡安全事件響應服務合同
- 杭州市房屋買賣合同(18篇)
- 時光都去哪了演講稿(10篇)
- 農業發展政策與農村經濟管理試題
- 財務成本管理實務模擬考試卷及答案解析
- 智能安防系統集成與安裝工程合同
- 計算機三級嵌入式學習路徑試題及答案
- 信息系統監理師考生如何制定計劃試題及答案
- 嵌入式系統應用案例分析試題及答案
- 電烤箱溫度控制系統設計
- 地基釬探技術交底
- 2023年四川省水電投資經營集團普格電力有限公司招聘筆試題庫含答案解析
- 2023屆湖北省武漢市東湖高新區數學六年級第二學期期末綜合測試試題含解析
- (完整版)高級法學英語課文翻譯
- 無人機項目融資商業計劃書
- 食品營養學(暨南大學)智慧樹知到答案章節測試2023年
- 商戶撤場退鋪驗收單
- 部編版小學道德與法治三年級下冊期末質量檢測試卷【含答案】5套
- 斷親協議書范本
- 五年級語文下冊第八單元【教材解讀】課件
評論
0/150
提交評論