創(chuàng)建應(yīng)用程序框架_第1頁(yè)
創(chuàng)建應(yīng)用程序框架_第2頁(yè)
創(chuàng)建應(yīng)用程序框架_第3頁(yè)
創(chuàng)建應(yīng)用程序框架_第4頁(yè)
創(chuàng)建應(yīng)用程序框架_第5頁(yè)
已閱讀5頁(yè),還剩41頁(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)介

1、創(chuàng)建應(yīng)用程序框架JSP程序設(shè)計(jì)教程課件 制作人:宋坤第1頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一【學(xué)習(xí)導(dǎo)航】 課件制作人:宋坤第2頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一本章目錄4.1 應(yīng)用程序向?qū)?.2 應(yīng)用程序向?qū)傻奈募?.3 ClassWizard類向?qū)?4.4 程序調(diào)試4.5 課后習(xí)題課件制作人:宋坤第3頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一4.1 應(yīng)用程序向?qū)isual C+中的向?qū)ь愋褪褂脩?yīng)用程序向?qū)дn件制作人:宋坤第4頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一Visual C+中的向?qū)ь愋汀癋ile”/

2、“New”菜單命令課件制作人:宋坤第5頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一Visual C+中的向?qū)ь愋蚔isual C+集成開發(fā)環(huán)境中向?qū)ь愋图吧傻某绦蛘f(shuō)明如下: l ATL COM AppWizard:創(chuàng)建包含ActiveX控件的ATL(Active Template Library)。 l Cluster Resource Type Wizard:創(chuàng)建能夠在微軟群服務(wù)器上模擬和管理的項(xiàng)目。 l Custom AppWizard:以用戶定制的模板向?qū)?chuàng)建項(xiàng)目。 l Datebase Project:創(chuàng)建數(shù)據(jù)庫(kù)項(xiàng)目。 lDevStudio Add-in Wizard:

3、創(chuàng)建C+或匯編語(yǔ)言編寫的類似于Developer Studio形式的 外接程序。 l Extended Stored Proc Wizard:在SQL Server上創(chuàng)建一個(gè)擴(kuò)展存儲(chǔ)的程序。 l ISAPI Extension Wizard:利用ISAPI(Internet Server API)創(chuàng)建網(wǎng)頁(yè)瀏覽程序。 l Makefile:制作Makefile文件,訂制自己項(xiàng)目的集成開發(fā)環(huán)境。 l MFC AcitveX Control Wizard:創(chuàng)建基于MFC的ActiveX控件。 l MFC AppWizarddll:創(chuàng)建基于MFC的動(dòng)態(tài)連接庫(kù)。 l MFC AppWizardexe:創(chuàng)

4、建基于MFC的應(yīng)用程序,這是最常使用的一個(gè)向?qū)А?l New Database Wizard:在SQL Server上創(chuàng)建一個(gè)SQL Server數(shù)據(jù)庫(kù)。 l Utility Project:創(chuàng)建自定義編譯規(guī)則的項(xiàng)目,該項(xiàng)目可以作為一些子項(xiàng)目的主項(xiàng)目, 它不產(chǎn)生LIB、DLL或EXE文件。 l Win32 Application:創(chuàng)建Win32應(yīng)用程序,可不使用MFC,采用SDK方式編程或 C語(yǔ)言編程。 l Win32 Dynamic-Link Library:創(chuàng)建Win32動(dòng)態(tài)連接庫(kù),采用SDK方法。 l Win32 Static Library:創(chuàng)建Win32靜態(tài)連接庫(kù),采用SDK方法。、

5、 其中,最常使用的是MFC AppWizardexe,這也是本章講述的重點(diǎn)。 課件制作人:宋坤第6頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一使用應(yīng)用程序向?qū)indows下可視化應(yīng)用程序框架:(1)菜單欄“File”/“New”-New窗口-Projects選項(xiàng)卡-MFC AppWizardexe項(xiàng)課件制作人:宋坤第7頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一使用應(yīng)用程序向?qū)?(2)單擊OK按鈕,彈出MFC AppWizard - Step1窗口 lSingle document:一次只能打開一個(gè)文檔編輯窗口。 lMultiple document:在應(yīng)用程序中

6、可同時(shí)打開多個(gè)文檔。 lDialog based:在對(duì)話框基礎(chǔ)上建立的程序。課件制作人:宋坤第8頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一使用應(yīng)用程序向?qū)?3)這里選擇Dialog based單選項(xiàng),單擊Next按鈕,打開MFC AppWizardStep 2 of 4窗口課件制作人:宋坤第9頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一使用應(yīng)用程序向?qū)?5)單擊Next按鈕,打開MFC AppWizard Step 3 of 4窗口。 課件制作人:宋坤第10頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一使用應(yīng)用程序向?qū)?6)單擊Next按鈕,打開MFC

7、 AppWizard Step 4 of 4窗口課件制作人:宋坤第11頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一使用應(yīng)用程序向?qū)?7)在MFC AppWizard Step 4 of 4窗口中確定類的名稱及所在文件的名稱,單擊Finish按鈕,打開New Project Information窗口。 課件制作人:宋坤第12頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一4.2 應(yīng)用程序向?qū)傻奈募募愋偷湫臀募e例課件制作人:宋坤第13頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一文件類型擴(kuò)展名描述opt工程中關(guān)于開發(fā)環(huán)境的參數(shù)選項(xiàng)文件clw類向?qū)募?/p>

8、信息,是按INI文件格式存儲(chǔ)的dsp工程文件dsw工作區(qū)文件,將項(xiàng)目的詳細(xì)情況組合到Workspace工作區(qū)中aps資源輔助文件,二進(jìn)制格式plg編譯信息文件,存儲(chǔ)錯(cuò)誤或警告信息hpj幫助文件bsc代碼瀏覽文件,如果使用源代碼瀏覽器,必須生成該文件map可執(zhí)行文件的映像信息記錄文件pch預(yù)編譯文件,可以加快編譯速度pdb記錄了程序有關(guān)的一些數(shù)據(jù)和調(diào)試信息,在調(diào)試的時(shí)候有用exp只有在編譯DLL時(shí)才會(huì)生成,記錄DLL文件中的一些信息ncb無(wú)編譯瀏覽文件,當(dāng)自動(dòng)完成功能出問(wèn)題時(shí)可以刪除此文件h頭文件cpp源文件rc資源文件rc2資源文件,用來(lái)將資源包含在項(xiàng)目中res編譯后的二進(jìn)制資源文件 一般而言

9、,Visual C+中一個(gè)類由頭文件和源文件兩類文件支持。頭文件用于定義類,包含指明派生關(guān)系,聲明成員變量及成員函數(shù)。源文件用于實(shí)現(xiàn)類,主要定義成員函數(shù)的實(shí)現(xiàn)代碼和消息映射。 課件制作人:宋坤第14頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一典型文件舉例 利用MFC AppWizardexe向?qū)梢粋€(gè)應(yīng)用程序,根據(jù)應(yīng)用程序種類的不同,生成的文件也有所差異,下面將分類列舉。1應(yīng)用文件(1)應(yīng)用程序類文件每個(gè)MFC應(yīng)用程序都需要有一個(gè)應(yīng)用程序類文件,它一般與項(xiàng)目文件同名,例如:在默認(rèn)情況下,MyProject項(xiàng)目應(yīng)用程序類頭文件為MyProject.h;源文件的文件名為“MyPro

10、ject.cpp”,它們主要聲明及實(shí)現(xiàn)應(yīng)用程序類CMyProjectApp。CMyProjectApp類主要負(fù)責(zé)完成應(yīng)用程序的初始化、程序的啟動(dòng)和程序運(yùn)行結(jié)束時(shí)的清理工作。(2)資源文件在項(xiàng)目中,資源通過(guò)資源標(biāo)識(shí)符加以區(qū)分,通常情況下,應(yīng)用程序向?qū)?huì)把一個(gè)項(xiàng)目中所有資源的標(biāo)識(shí)符放到Resource.h中。對(duì)資源ID的命名有一定規(guī)則,如表4-2所示。標(biāo)識(shí)符前綴說(shuō) 明IDR_主菜單資源、工具欄資源和快捷鍵資源IDD_對(duì)話框資源IDC_控件和光標(biāo)IDS_字符串IDP_提示信息對(duì)話框的字符串ID_菜單命令項(xiàng)課件制作人:宋坤第15頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一典型文件舉例 (

11、3)標(biāo)準(zhǔn)包含文件應(yīng)用程序向?qū)?huì)為每一個(gè)項(xiàng)目生成一個(gè)標(biāo)準(zhǔn)包含頭文件StdAfx.h,該文件用于包含一般情況下要用到且不會(huì)被修改的頭文件,如MFC聲明文件afxwin.h、使用工具欄、狀態(tài)欄文件afxext.h等。StdAfx.h和StdAfx.cpp文件用來(lái)生成預(yù)編譯文件。2單文檔應(yīng)用程序/多文檔應(yīng)用程序單文檔應(yīng)用程序和多文檔應(yīng)用程序框架都是由3個(gè)類組成的,它們是框架窗口類、文檔類和視圖類。(1)框架窗口類文件在默認(rèn)情況下,框架窗口的頭文件均為MainFrm.h;源文件均為MainFrm.cpp,這兩個(gè)文件定義和實(shí)現(xiàn)了框架窗口類CMainFrame,這個(gè)類是MFC的CFrameWnd類的派生類,

12、它主要負(fù)責(zé)創(chuàng)建標(biāo)題欄、工具欄和狀態(tài)欄。(2)文檔類文件在默認(rèn)情況下,文檔類頭文件都是項(xiàng)目名稱+“Doc.h”組成;源文件都是項(xiàng)目名稱+“Doc.cpp”組成。例如:MyProject項(xiàng)目中文檔類頭文件為MyProjectDoc.h;源文件為MyProjectDoc.cpp。它們是定義和實(shí)現(xiàn)文檔類CMyProjectDoc的。CMyProjectDoc類是MFC中CDocument類的派生類,它主要負(fù)責(zé)應(yīng)用程序數(shù)據(jù)的保存和裝載,實(shí)現(xiàn)文檔的序列化功能。(3)視圖類文件在默認(rèn)情況下,視圖類頭文件都是項(xiàng)目名稱+“View.h”組成;源文件都是項(xiàng)目名稱+“View.cpp”組成。例如:MyProject

13、項(xiàng)目中視圖類頭文件為MyProjectView.h;源文件為MyProjectView.cpp。它們是定義和實(shí)現(xiàn)視圖類CMyProjectView的。CMyProjectView類是MFC中CView類的派生類,它主要負(fù)責(zé)客戶區(qū)文檔數(shù)據(jù)的顯示及如何進(jìn)行人機(jī)交互。 課件制作人:宋坤第16頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一典型文件舉例 3基于對(duì)話框應(yīng)用程序在默認(rèn)情況下,對(duì)話框類頭文件都是項(xiàng)目名稱+“Dlg.h”組成;源文件都是項(xiàng)目名稱+“Dlg.cpp”組成。例如:MyProject項(xiàng)目中對(duì)話框類頭文件為MyProjectDlg.h;源文件為MyProjectDlgcpp。

14、它們是定義和實(shí)現(xiàn)對(duì)話框類CMyProjectDlg的。CMyProjectDlg類是MFC中CDialog類的派生類。它可以完成一個(gè)對(duì)話框的創(chuàng)建、顯示等工作。 課件制作人:宋坤第17頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一4.3 Class Wizard類向?qū)lass Wizard的功能Class Wizard的簡(jiǎn)單應(yīng)用為項(xiàng)目添加新類手工添加消息處理函數(shù)課件制作人:宋坤第18頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一Class Wizard的功能 ClassWizard(類向?qū)В┲饕脕?lái)定制現(xiàn)有的類和建立新的類,如把消息映射到類的成員函數(shù),把一個(gè)控件與類的成

15、員變量對(duì)應(yīng)起來(lái)。只有在打開或創(chuàng)建一個(gè)項(xiàng)目后,View主菜單才會(huì)出現(xiàn)ClassWizard菜單項(xiàng),這時(shí)才能使用ClassWizard(類向?qū)В?。一般通過(guò)快捷鍵激活ClassWizard?!癕FC ClassWizard”對(duì)話框共有5個(gè)頁(yè)面:Message Maps頁(yè)面用來(lái)處理消息映射,為消息添加或刪除處理函數(shù),查看已被處理的消息并定位消息處理代碼;Member Variables頁(yè)面用來(lái)給對(duì)話框類添加或刪除成員變量,這些變量必須是和某些控件資源相關(guān)聯(lián)的控件類型;Automation頁(yè)面提供了對(duì)OLE自動(dòng)化類的屬性和方法的管理;ActiveX Events頁(yè)面用于管理ActiveX類所支持的Act

16、iveX事件;Class Info頁(yè)面顯示應(yīng)用程序中所包含類的信息,如一個(gè)類的頭文件、實(shí)現(xiàn)文件和基類信息。圖4-8為“MFC ClassWizard”對(duì)話框。課件制作人:宋坤第19頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一Class Wizard的簡(jiǎn)單應(yīng)用 在編程時(shí),經(jīng)常使用的就是“MFC ClassWizard”對(duì)話框中的Message Maps頁(yè)面和Member Variables頁(yè)面。下面圍繞著它們簡(jiǎn)單介紹一下。1怎樣為類添加一個(gè)消息響應(yīng)函數(shù)(1)首先,建立一個(gè)基于對(duì)話框的應(yīng)用程序。(2)單擊“View”/“ClassWizard”菜單命令打開“MFC ClassWiza

17、rd”對(duì)話框。 (3)確定當(dāng)前“為Message Maps”頁(yè)面,在“Object Ids”列表中選擇需要添加消息響應(yīng)函數(shù)的對(duì)象;在“Messages”列表中選擇需要添加的消息,例如:本教材需要為對(duì)話框添加WM_INITDIALOG消息響應(yīng)函數(shù)。就在“Object IDs”列表中選擇“CMyProjectDlg”,在“Messages”列表中找到“WM_INITDIALOG”并雙擊該列表項(xiàng),此時(shí),在“Member functions”列表中會(huì)出現(xiàn)“OnInitDialog”,如圖4-9所示。 課件制作人:宋坤第20頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一Class Wizar

18、d的簡(jiǎn)單應(yīng)用 2如何將一個(gè)控件與一個(gè)類的成員變量對(duì)應(yīng)起來(lái)(1)首先,建立一個(gè)基于對(duì)話框的應(yīng)用程序。(2)單擊“View”/“ClassWizard”菜單命令打開“MFC ClassWizard”對(duì)話框。(3)確定當(dāng)前“為Member Variables”頁(yè)面,在“Control Ids”列表中找到需要對(duì)應(yīng)成員變量的控件ID,例如:本教材需要為“確定”按鈕添加一個(gè)對(duì)應(yīng)的變量m_ButOK,需要在Control Ids”列表中雙擊“確定”按鈕的資源ID“IDOK”,在彈出的“Add Member Variable”對(duì)話框中找到“Member Variable Name”文本框,在此文本框中輸入“m

19、_ButOK”,單擊OK按鈕完成添加操作。在函數(shù)名前有“W”標(biāo)志的表示消息響應(yīng)函數(shù);有“V”標(biāo)志的表示虛函數(shù)。課件制作人:宋坤第21頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一為項(xiàng)目添加新類 為項(xiàng)目添加新類的方法如下:(1)首先,建立一個(gè)基于對(duì)話框的應(yīng)用程序。(2)單擊“View”/“ClassWizard”菜單命令打開“MFC ClassWizard”對(duì)話框。 (3)單擊右上角“Add Class”按鈕,在彈出的菜單中選擇“New”菜單項(xiàng),彈出“New Class”對(duì)話框,如圖4-10所示。 課件制作人:宋坤第22頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一為項(xiàng)目

20、添加新類 (4)在“Name”文本框中添入“CNewClassName”,在“Base class”文本框中選擇需要?jiǎng)?chuàng)建的類的基類,單擊“OK”按鈕,將類CNewClassName添加到項(xiàng)目中,在Workspace工作區(qū)中就可以對(duì)這個(gè)類進(jìn)行編輯了,如圖4-11所示。 課件制作人:宋坤第23頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一手工添加消息處理函數(shù) 消息處理函數(shù)是VC+最常用到的函數(shù)之一,實(shí)際上,消息處理函數(shù)是通過(guò)在消息地圖中聲明來(lái)實(shí)現(xiàn)的。請(qǐng)看下邊的例子。手工為對(duì)話框類MyProject添加消息DIY_NEWMESSAGE(自定義消息)的消息響應(yīng)函數(shù)OnNewMessage。

21、(1)首先,建立一個(gè)基于對(duì)話框的應(yīng)用程序MyProject。(2)單擊“View”/“ResourceSymbols”,彈出“ResourceSymbols”對(duì)話框。 (3)在“ResourceSymbols”對(duì)話框中單擊“New”按鈕,為類添加一個(gè)新標(biāo)識(shí)“DIY_NEWMESSAGE”,如圖4-12所示。 (4)關(guān)閉“ResourceSymbols”對(duì)話框,在Workspace中找到類CMyProjectDlg,雙擊CMyProjectDlg節(jié)點(diǎn)下的任意一個(gè)成員函數(shù)標(biāo)識(shí),代碼編輯器中顯示MyProjectDlg.cpp文件內(nèi)容。(5)在代碼編輯器中找到下段代碼:BEGIN_MESSAGE_M

22、AP(CMyProjectDlg, CDialog)END_MESSAGE_MAP()這是消息地圖的聲明。讀者需要在這個(gè)消息地圖中添加消息響應(yīng)說(shuō)明。BEGIN_MESSAGE_MAP(CMyProjectDlg, CDialog)ON_MESSAGE(DIY_NEWMESSAGE,OnNewMessage)END_MESSAGE_MAP()這句代碼告訴編譯器,當(dāng)有DIY_NEWMESSAGE消息發(fā)生時(shí),執(zhí)行OnNewMessage成員函數(shù)。 課件制作人:宋坤第24頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一手工添加消息處理函數(shù) (6)在Workspace中選中類CMyProjec

23、tDlg的標(biāo)識(shí),單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“Add Member Function”項(xiàng),打開“Add Member Function”對(duì)話框。(7)在“Add Member Function”對(duì)話框中的“Function Type”文本框中添入函數(shù)的返回值;在“Function Declaration”文本框中添入“OnNewMessage”,單擊“OK”按鈕,將此函數(shù)添加到項(xiàng)目中,如圖4-13所示。 (8)這樣,一個(gè)消息響應(yīng)函數(shù)就做成了,當(dāng)系統(tǒng)捕捉到“DIY_NEWMESSAGE”消息時(shí),會(huì)自動(dòng)執(zhí)行OnNewMessage成員函數(shù)。 課件制作人:宋坤第25頁(yè),共46頁(yè),2022年,

24、5月20日,11點(diǎn)25分,星期一4.4 程序調(diào)試斷點(diǎn)跟蹤調(diào)試窗口課件制作人:宋坤第26頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一斷點(diǎn)跟蹤F9鍵:設(shè)置斷點(diǎn)。:打開斷點(diǎn)窗口。1設(shè)置條件斷點(diǎn)在設(shè)計(jì)斷點(diǎn)時(shí),可能需要設(shè)置一個(gè)條件斷點(diǎn)。所謂條件斷點(diǎn),是在變量或表達(dá)式符合斷點(diǎn)條件時(shí)才產(chǎn)生中斷,進(jìn)入調(diào)試階段。如圖4-14所示。課件制作人:宋坤第27頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一斷點(diǎn)跟蹤 (1)編寫一段代碼,如下:int sum = 0;for ( int i = 0;i 10;i+) sum+= i;(2)按Ctrl+B組合鍵打開斷點(diǎn)窗口,在“sum+= i”行處設(shè)

25、置一個(gè)段點(diǎn),如圖4-15所示。課件制作人:宋坤第28頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一斷點(diǎn)跟蹤 (3)單擊“Conditon”按鈕,打開斷點(diǎn)條件窗口,在該窗口中設(shè)置斷點(diǎn)條件,如圖4-16所示。 (4)運(yùn)行程序,執(zhí)行代碼,當(dāng)變量i等于2時(shí)將產(chǎn)生中斷,如圖4-17所示。 課件制作人:宋坤第29頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一斷點(diǎn)跟蹤 2設(shè)置數(shù)據(jù)斷點(diǎn)數(shù)據(jù)斷點(diǎn)只能在Breakpoints對(duì)話框中設(shè)置。選擇“Data”選項(xiàng)卡,就顯示了設(shè)置數(shù)據(jù)斷點(diǎn)的對(duì)話框。在編輯框中輸入一個(gè)表達(dá)式,當(dāng)這個(gè)表達(dá)式的值發(fā)生變化時(shí),數(shù)據(jù)斷點(diǎn)就到達(dá)。一般情況下,這個(gè)表達(dá)式應(yīng)該由運(yùn)

26、算符和全局變量構(gòu)成。(1)定義一個(gè)全局變量,并編寫一段代碼,如下:void CDebugDlg:OnOK() int sum = 0; for ( i = 0;i 10;i+)/i為一個(gè)整型全局變量 sum+= i; (2)按Ctrl+B組合鍵打開斷點(diǎn)窗口,選擇“Data”選項(xiàng)卡,在編輯框中輸入全局變量i,如圖4-18所示。課件制作人:宋坤第30頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一斷點(diǎn)跟蹤(3)單擊OK按鈕保存設(shè)置。運(yùn)行程序,當(dāng)程序試圖改變變量i的值時(shí)將產(chǎn)生中斷,進(jìn)入調(diào)試階段,如圖4-19所示。(4)單擊“確定”按鈕,程序?qū)⑼A粼凇案淖僫值”的代碼處,如圖4-20所示。

27、課件制作人:宋坤第31頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一斷點(diǎn)跟蹤3設(shè)置消息斷點(diǎn)Visual C+也支持對(duì)Windows消息進(jìn)行截獲,有兩種方式進(jìn)行截獲:窗口消息處理函數(shù)和特定消息中斷。在“Breakpoints”對(duì)話框中選擇“Messages”選項(xiàng)卡,就可以設(shè)置消息斷點(diǎn)。如果采用窗口消息處理方式,那么每次消息被這個(gè)函數(shù)處理,斷點(diǎn)就到達(dá);如果采用特定消息中斷方式,則每次指定的消息到達(dá),程序就中斷。(1)按組合鍵打開斷點(diǎn)窗口,選擇“Messages”選項(xiàng)卡,如圖4-21所示。 (2)在上方的組合框中輸入窗口過(guò)程“AfxWndProc”,在下方的組合框中輸入產(chǎn)生中斷的消息,例

28、如“WM-LBVTTONOOWN”,如圖4-22所示。課件制作人:宋坤第32頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一斷點(diǎn)跟蹤(3)運(yùn)行程序,當(dāng)用戶單擊鼠標(biāo)左鍵時(shí)將產(chǎn)生中斷,如圖4-23所示。 課件制作人:宋坤第33頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一斷點(diǎn)跟蹤(4)單擊“確定”按鈕,程序?qū)⑼A粼贏fxWndProc處,如圖4-24所示。 4斷點(diǎn)跟蹤前面本教材介紹了設(shè)置斷點(diǎn)的方法,下面介紹如何利用斷點(diǎn)跟蹤程序。(1)編寫一段代碼,并在代碼處設(shè)置一個(gè)斷點(diǎn),如圖4-25所示。 課件制作人:宋坤第34頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一斷點(diǎn)跟

29、蹤(2)運(yùn)行程序,執(zhí)行斷點(diǎn)所在的函數(shù),程序?qū)⑼A粼跀帱c(diǎn)處,如圖4-26所示。 課件制作人:宋坤第35頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一斷點(diǎn)跟蹤(3)按鍵執(zhí)行當(dāng)前行代碼,指針將移動(dòng)到下一行代碼,同時(shí)sum的值被設(shè)置為0,用戶可以通過(guò)鼠標(biāo)或調(diào)試窗口查看變量的值,如圖4-27所示。 課件制作人:宋坤第36頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一斷點(diǎn)跟蹤(4)按鍵連續(xù)執(zhí)行代碼,直到當(dāng)前指針停留在“total = Add(10,2)”語(yǔ)句處,如圖4-28所示。 課件制作人:宋坤第37頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一斷點(diǎn)跟蹤(5)當(dāng)前代碼

30、涉及一個(gè)函數(shù)調(diào)用(Add函數(shù)),如果用戶按鍵,當(dāng)前指針不會(huì)進(jìn)入Add函數(shù)而繼續(xù)向下執(zhí)行;如果用戶按鍵,當(dāng)前指針會(huì)進(jìn)入Add函數(shù),在Add函數(shù)執(zhí)行后重新返回被調(diào)用的函數(shù)處。按鍵進(jìn)入Add函數(shù),如圖4-29所示。 課件制作人:宋坤第38頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一斷點(diǎn)跟蹤課件制作人:宋坤第39頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一調(diào)試窗口 1. Watch調(diào)試窗口 Watch窗口主要用來(lái)查看變量或?qū)ο蟮男畔?。用戶可以通過(guò)單擊“View”/“Debug Windows”/“Watch”菜單項(xiàng)或者按組合鍵打開Watch窗口,為了查看某個(gè)變量或?qū)ο蟮闹担?/p>

31、在程序處于中斷時(shí),用戶可以利用鼠標(biāo)將其拖動(dòng)到Watch窗口中,這樣,在Watch窗口中將顯示變量或?qū)ο蟮脑敿?xì)信息,如圖4-30所示。 2. Call Stack窗口 Call Stack窗口能夠查看當(dāng)前函數(shù)的調(diào)用信息。例如函數(shù)的參數(shù)信息,調(diào)用當(dāng)前函數(shù)的參數(shù)等。CallStack窗口如圖4-31所示。 課件制作人:宋坤第40頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一調(diào)試窗口 從圖4-31中可以看出當(dāng)前函數(shù)為Add,參數(shù)值分別為10、20,在InitInstance方法中調(diào)用了Add方法。當(dāng)用戶在Call Stack窗口中雙擊InitInstance方法時(shí),代碼編輯器將進(jìn)入到InitInstance方法,并顯示在該方法何處調(diào)用了Add方法,如圖4-32所示。 3Memory窗口Memory窗口用于顯示某個(gè)地址開始處的內(nèi)存信息,默認(rèn)地址為0 x00000000。用戶可以通過(guò)單擊“View”/“Debug Windows”/“Memory”菜單項(xiàng)或者按組合鍵打開Memory窗口,如圖4-33所示。 課件制作人:宋坤第41頁(yè),共46頁(yè),2022年,5月20日,11點(diǎn)25分,星期一調(diào)試窗口 在調(diào)試程序時(shí),使用Memory窗口查看某個(gè)對(duì)象或變量的地址信息及值信息。例如,將某個(gè)變量拖動(dòng)到Memory窗口的列表中,在列表中將顯示該變量的地址及變量的值,如圖4-34所

溫馨提示

  • 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)論