vc入門寶典八(基本操作) (轉)

worldblog發表於2007-12-14
vc入門寶典八(基本操作) (轉)[@more@]

  基本操作:namespace prefix = o ns = "urn:schemas--com::office" />

 

/develop/author/netauthor/he_zhidan/">何志丹

 

主要內容:

Workspace(ClassView,ResoreceView,FileView)

選單

App Wizard(應用嚮導)

Class Wizard(類嚮導)

標準

常用方法

 

的視窗分為三部分,正文視窗(右上角),工作視窗(左側),輸出視窗(下側)。

工作視窗有三個標籤,ClassView,ResoreceView,FileView;單擊“+”,“—”開啟夾;對沒有開啟的資料夾或檔案,雙擊開啟;對於開啟的資料夾雙擊關閉。在ClassView中雙擊類名,

正文視窗顯示類定義,雙擊類的成員變數檢視定義,雙擊進入函式實現。對函式名右鍵,

有兩個功能比較有實用價值:calls,called by.對類名進行右鍵,有兩個功能十分有價值:

增加成員變數,增加成員函式。

 

常見選單:

Edit->AdvancedFormat ion  Alt+F8    對選中進行縮排

Edit->AdvancedMake Selection Uppercase Ctrl+Shift+U  把選中部分改成大寫

Edit->AdvancedMake Selection Lowercase Ctrl+U  把選中部分改成小寫

Edit最後的三個選單沒有多大實用價值,因為如果要檢視一個類的成員,可以用ClassName::的形式看,自動會列出成員,你只需打個開頭再空格(或其它非識別符號字元)就可以了,自動會匹配第一個符合條件的成員。當你打完函式名,再打正括號時,就會顯示有關資訊,包括在函式定義同一行的註釋。

View->ClassWizard  Ctrl+w   編輯應用程式中的類

View->DeWindow  Ctrl+F10,執行到游標處,它的子項就可以使用了。

Debug選單基本上都會使用,Set Active Configuration,設定Debug方式或Release方式。

#ifdef _DEBUG

#endif

這個宏定義之間的語句,在Release方式下不會被。

Tool->Customize->Toolbars定義工具條

 

AppWizard有幾步,只有第一,第二,最後一步比較重要。

第一步選擇:MFC A ppWizard(exe);

第二步:Single document單文件

  Multiple document多文件

  Dialog basede  基於對話方塊

最後一步(基於對話方塊沒有):

  Base Class:

選擇檢視類的基類,各基類差別比較明顯,大家試一下就行了。應用程式嚮導會自動生成應用程式類,文件模組類,類,文件類,檢視類。簡單程式絕大部分處理都在檢視類。當資料較複雜時,會用到文件類。

 

Ctrl+W開啟ClassWizard

該對話方塊包含以下選項卡。

1,  Message Maps選項卡:管理訊息和成員函式之間的連線。

2,  Member Variables選項卡:使加入或刪除成員變數(與控制元件關聯的)。

3,  Automation選項卡:提供各種特性來支援Automation,使使用者方便地增刪Automation的屬性和方法。

4,  Active Events選項卡:提供各種特性來支援,使使用者方便地增刪屬性和響應函式。

5,  Class Info選項卡:顯示類的資訊,允許使用者建立新類,以便支援對話方塊和有格式的檢視。

 

Message Maps

1 Projcect 工程,一般不必修改,因為一般只有一個。

2,Class name  類名

3, IDs列出了當前所選中物件的ID號,包括能產生訊息的選單項,對話方塊控制元件等。

4,message列出了Object IDs框中所選中的當前項可處理的訊息及可以被重寫的MFC函式。雙擊訊息相當於AddFunction.

5,Member functions列表框列出了Class name框當前類包含的所有成員函式。標註V的是虛擬函式,標註W的是訊息。

 

Member Variables選項卡:

雙擊ID,彈出增加成員變數對話方塊:

Category有兩種選擇,值,控制,每個控制元件可以和一個值型別資料相關聯,同時還可以和一個控制型別資料相關聯。

 

當你編輯一個對話方塊時,會多一個工具條,上面有許多標準控制元件。如果你不小心把它關掉了,在標準工具條附近的空白處右鍵,如選單右邊,將Controls勾上。將一個控制元件加到對話方塊有兩種方法:

1,  直接拖到對話方塊上。

2,  單擊一個控制元件,然後在對話方塊上畫。

 

 

除錯的最常用的三種方法,假如我們懷疑一個整形變數x有問題的話,可以:

1,  CString str;

str.Format(“%d”,x);//和printf非常相似

MessageBox(str);

優點:點確定後程式才會繼續執行。

缺點:如果次數太多,過於浪費時間和鍵盤。

2,Ctrl+F10執行到游標處,在Watch視窗中name項輸入x,,後面會顯示值。

  優點:簡單,可以檢視所有的值。

  缺點:無法看到第二次執行到此處的情況。

3,  #ifdef _DEBUG

  afxDump<

#endif

將結果顯示在OutPut,不能在Release狀態下。Ctrl+F5似乎無效,F5可以。

afxDump.SetDepth(1);
設定深度,如maps,arrays,它只打出有幾個可元素,我們用上面的這個函式,它會將所有的內容打出來.
#ifdef _DEBUG
 char test[] = "0123456789n";
 afxDump.HexDump( "--", (BYTE*) test, 11, 6 );
#endif
結果為:
-- 30 31 32 33 34 35
-- 36 37 38 39 0A
第一個引數,行首的打頭字元.
第二個引數,要打的內容.
第三個引數,要打的元素個數.
第四個引數,每行的個數. 

4,TRACE(...), VC6SETUPMSDNMSDNvcmfc.chm::/html/_mfc_trace0.htm">TRACE0, , ,  也只能在除錯時用注意打字串時有長度限制,包括結束符在內,不超過512個字元.

5.在Debug狀態下
F9設定斷點後,F5到下一個斷點,F10下一行,F11進入函式(包括函式)內部,Shift + F11出來.
F5後,Debug選單有相應的選單項.
F5後,View->Debug Window的子選單項比較有用.
Watch   檢視你指定的變數
variables 顯示auot變數,local變數,this的值
memory  顯示指定地址的值
call stack 顯示函式關係
registers 暫存器的值
Disabblemble  程式碼

其實Release下也可除錯F5
Alt + f7 工程設定
cc++  Generate Browse info 選上.
  Debug info 選 Progame database for edit and continue
Link  Generate debug info 選上
  Link incrementally 選上


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993544/,如需轉載,請註明出處,否則將追究法律責任。

相關文章