microsoftvisualvisualc6.0使用方法絕對(duì)實(shí)用_第1頁(yè)
已閱讀1頁(yè),還剩73頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1,Visual C++使用方法簡(jiǎn)介,2,Visual C++菜單欄,Visual C++6.0的菜單分成9大類(lèi):[File]文件 [Edit]編輯 [View]視圖 [Insert]插入 [Project]工程 [Build]組建 [Tools]工具 [Window]窗口 [Help]幫助在程序運(yùn)行時(shí), Visual C++ 6.0的菜單欄可以動(dòng)態(tài)改變,還有[Layout]

2、和[Debug]。如在調(diào)試狀態(tài)下, [Build]變成了[Debug]。,3,[File]文件菜單,[File]菜單共有14選項(xiàng),分成6組:1、[New]新建一個(gè)一般文件,工程,工作區(qū),其他文檔。[Open]打開(kāi)、[Close]關(guān)閉2、Workspace工作區(qū)操作,打開(kāi)、保存和關(guān)閉工作區(qū)。3、有三個(gè)菜單項(xiàng),用于文件保存。4、有二個(gè)菜單項(xiàng),用于文件打印。5、用于打開(kāi)以前打開(kāi)過(guò)的文件或工作區(qū)。6、一個(gè)菜單項(xiàng)Exit,用于退出V

3、isual C++ 6.0。,4,[Edit]編輯菜單,[Edit]菜單分成7組:1、撤銷(xiāo)編輯結(jié)果,或重復(fù)前次編輯過(guò)程。2、提供常見(jiàn)的編輯功能。3、字符串查找和替換。4、Go to和Bookmark編輯行定位和書(shū)簽定位。5、Advanced(高級(jí)),一些其他編輯手段。6、Breakpoints,與調(diào)試有關(guān),主要用于設(shè)置斷點(diǎn)。7、成員列表、函數(shù)參數(shù)信息、類(lèi)型信息,及自動(dòng)完成功能。,5,[View]視圖菜單,[View]菜單共

4、有9個(gè)選項(xiàng),分成6組(初始時(shí)沒(méi)有1和7):1、ClassWizard(或Ctrl+W),激活MFC ClassWizard 類(lèi)向?qū)Чぞ撸脕?lái)管理類(lèi)、消息映射等。2、Resource Symbols 對(duì)工程所定義的所有資源標(biāo)號(hào),進(jìn)行瀏覽和管理。3、 Resource Includes 用于設(shè)定資源ID的包含頭文件 。4、Full Screen 全屏顯示,按Esc退出全屏顯示。5、Workspace 顯示工作區(qū)窗口。6、Outp

5、ut 顯示輸出窗口。7、Debug Windows 在調(diào)試狀態(tài)下控制一些調(diào)試窗口。8、Refresh 刷新當(dāng)前顯示窗口。9、Properties 查看和修改當(dāng)前窗口所顯示的對(duì)象的屬性。,6,[Insert]插入菜單,[Insert]菜單共有6個(gè)選項(xiàng):1、New Class 添加新類(lèi)(MFC 、Generic、Form三種不同類(lèi)型的類(lèi))。2、New Form 添加Form Class。3、Resource添加資源。4、Res

6、ource Copy添加資源復(fù)制件。5、File As Text 插入選定的文本文件。6、New ATL Object添加ATL對(duì)象。,7,[Project]工程菜單,[Project]菜單共有6個(gè)選項(xiàng):1、Set Active Project 在多個(gè)工程中選定當(dāng)前活動(dòng)工程。2、Add to Project 向當(dāng)前工程添加文件、文件夾、數(shù)據(jù)連接、Visual C組件,以及ActiveX控件。3、source Control源

7、代碼控制具。4、 Dependencies設(shè)置工程間的依賴(lài)關(guān)系。5、 Settings 設(shè)置工程屬性(調(diào)試版本、發(fā)布版本和共同部分)。6、Export Makefile 導(dǎo)出應(yīng)用程序的Make(*.mak)文件。,8,[Build]構(gòu)建菜單,[Build]菜單共有13個(gè)選項(xiàng):1、Compile 編譯當(dāng)前文件。2、Build 創(chuàng)建工程的可執(zhí)行文件,但不運(yùn)行。3、Rebuild All重新編譯所有文件,并連接生成可執(zhí)行文件。4

8、、Batch Build成批編譯、連接工程的不同設(shè)置。5、Clean把編譯、連接生成的中間文件和最終可執(zhí)行文件刪除。6、Start Debug->Go 開(kāi)始調(diào)試,到斷點(diǎn)處暫停。7、Start Debug->Step Into單步調(diào)試,遇函數(shù)進(jìn)入函數(shù)體。8、Start Debug ->Run to Cursor開(kāi)始調(diào)試,到光標(biāo)處停止。9、Debugger Remote Connection用于遠(yuǎn)程連接調(diào)試。1

9、0、Execute運(yùn)行可執(zhí)行目標(biāo)文件。11、Set Active Configuration選擇Build配置方式(Debug、Release)。12、Configuration增加或刪除工程配置方式。13、Profile工程構(gòu)建過(guò)程的描述文件。,9,[Tools]工具菜單,[Tools]菜單中是Visual C++附帶的各種工具。其中常用的工具有ActiveX Control Test Container(測(cè)試一個(gè)Activ

10、eX控件的容器)、Spy++(用于程序運(yùn)行時(shí)以圖形化方式查看系統(tǒng)進(jìn)程、線程、窗口、窗口信息等),以及MFC Tracer(用于程序跟蹤)等。還有一些常用的設(shè)置:Customize,Options。,10,[Windows]窗口菜單,[Windows]菜單主要工能如下:1、New Window新建一個(gè)窗口,內(nèi)容與當(dāng)前窗口同。2、Split 分割當(dāng)前窗口成四個(gè),內(nèi)容全相同。3、Docking View控制當(dāng)前窗口是否成為浮動(dòng)視

11、圖。4、Cascade編輯窗口層疊放置。5、Tile Horizontally編輯窗口橫向平鋪顯示。6、Tile Vertically編輯窗口縱向平鋪顯示。7、Windows對(duì)已經(jīng)打開(kāi)的窗口進(jìn)行集中管理。,11,[Help]窗口菜單,[Help]菜單中的4個(gè)選項(xiàng)Contents、Search、Index和Technical Support 都會(huì)彈出幫助窗口,叫做MSDN Library Visual Studio6.0。MSD

12、N庫(kù)提供的幫助工能很豐富,可以以目錄、索引和搜索三種方式提供幫助。瀏覽方式多樣,甚至可以連接到Web網(wǎng)站查找信息。另有兩個(gè)選項(xiàng):Keyboard Map選項(xiàng)打開(kāi)快捷鍵列表;Tip of the Day選項(xiàng)打開(kāi)Tip of the Day對(duì)話框,介紹Visual C++6.0的使用知識(shí)和技巧。,12,工具欄,工具欄由多個(gè)操作按鈕組成,這些操作一般都與某個(gè)菜單項(xiàng)對(duì)應(yīng)。主要工具欄如下:1、Standard提供最基本的功能:文件操作、編

13、輯、查找等。2、Build工程的編譯、連接、修改活動(dòng)配置、運(yùn)行調(diào)試程序。3、Build MiniBar由部分按鈕組成的工具欄。4、Resource添加各種類(lèi)型的資源。5、Edit剪切、復(fù)制和粘貼等功能。6、Debug用于調(diào)試狀態(tài)的若干操作7、Browse源程序?yàn)g覽操作8、Database跟數(shù)據(jù)庫(kù)有關(guān)的操作。,13,Visual C++組件一覽,Developer Studio開(kāi)發(fā)環(huán)境編輯器編譯器鏈接器Wizard實(shí)

14、用程序調(diào)試器其他實(shí)用工具,14,Developer Studio開(kāi)發(fā)環(huán)境,圖1,15,了解Developer Studio,Workspace(工作空間)窗口Output(輸出)窗口編輯窗口調(diào)試窗口,16,工作空間窗口,ClassView:列出項(xiàng)目中的類(lèi)和成員函數(shù)。雙擊列表中的類(lèi)或函數(shù),即可在Visual C++文本編輯器中打開(kāi)該類(lèi)的源文件。ResourceView:列出項(xiàng)目的資源數(shù)據(jù),雙擊列表中的數(shù)據(jù)項(xiàng)會(huì)打開(kāi)合適的編輯器并

15、加載資源。FileView:列出項(xiàng)目的源文件,頭文件。,Workspace窗口顯示了項(xiàng)目各個(gè)方面的信息。在窗口底端選擇相應(yīng)的選項(xiàng)卡來(lái)按不同視圖顯示項(xiàng)目的列表。,17,工作空間和項(xiàng)目,工作空間(workspace):工作空間是一個(gè)包含用戶(hù)的所有相關(guān)項(xiàng)目和配置的實(shí)體。項(xiàng)目(project):項(xiàng)目定義為一個(gè)配置和一組文件,用以生成最終的程序或二進(jìn)制文件。一個(gè)工作空間可以包含多個(gè)項(xiàng)目,這些項(xiàng)目既可以是同一類(lèi)型的項(xiàng)目,也可以是由不同類(lèi)型的項(xiàng)目

16、(如Visual C++和Visual J++項(xiàng)目)。,18,編輯窗口,編輯窗口為開(kāi)發(fā)者提供了編輯文件和資源的手段。通過(guò)編輯窗口,開(kāi)發(fā)者可以編輯和修改源程序和各種類(lèi)型的資源。,19,資源,資源包括菜單、對(duì)話框、圖標(biāo)、字體、快捷鍵等。開(kāi)發(fā)者可以通過(guò)編輯資源來(lái)定義WINDOWS程序的界面部分。資源的定義是以文本的形式存放在資源定義文件中,并由編譯器編譯為二進(jìn)制代碼。在VC++中,提供了一個(gè)資源編輯器,使開(kāi)發(fā)者能在圖形方式下對(duì)各種資源進(jìn)行

17、編輯。,20,資源編輯器,圖2,21,輸出窗口,編譯信息:在編譯時(shí)輸出,主要是編譯時(shí)的錯(cuò)誤和警告。調(diào)試信息:在對(duì)程序進(jìn)行調(diào)試時(shí)輸出,主要是程序當(dāng)前的運(yùn)行狀況。查找結(jié)果:在用戶(hù)從多個(gè)文件中查找某個(gè)字符串時(shí)產(chǎn)生,顯示查找結(jié)果的位置。,輸出窗口輸出一些用戶(hù)操作后的反饋信息,它由一些頁(yè)面組成,每個(gè)頁(yè)面輸出一種信息,輸出的信息種類(lèi)主要有:,22,調(diào)試窗口,變量查看窗口(WATCH)過(guò)程調(diào)用查看窗口(CALL STACK)內(nèi)存查看窗口(ME

18、MORY)寄存器查看窗口(REGISTER),調(diào)試窗口包括一組窗口,在調(diào)試程序時(shí)分別顯示各種信息,這些窗口主要包括:,23,用VC++環(huán)境下運(yùn)行一個(gè)新程序的上機(jī)操作步驟,1.打開(kāi)VC++窗口,單擊菜單[File]->[New]2.在彈出窗口上選擇標(biāo)簽Project,選中Win32 Console Application項(xiàng),并在Project name框輸入工程名;在Location框輸入保存源程序的路徑名;單擊OK。3.在彈

19、出窗口選擇An Empty Project,單擊[Finish]按鈕;在下一窗口單擊OK。4.再在VC++菜單條中單擊[File]->[New]。,24,5.在彈出窗口選擇標(biāo)簽File,選C++ Source File,并在File框輸入文件名。(此時(shí),Add to project框應(yīng)該是剛輸入的工程名,Location框應(yīng)是剛輸入的路徑名).6.在編輯窗口輸入源程序,單擊[File]->[Save],存盤(pán).7.再在

20、VC++菜單條中單擊[Build]->[Compile];無(wú)編輯錯(cuò),單擊[Build] -> [Build];無(wú)連接錯(cuò),單擊[Build]->[Execute]執(zhí)行程序;運(yùn)行結(jié)束,按任意鍵退回VC++窗口。8.如果再鍵入另一個(gè)新程序,單擊[File]->[Close Workspace];然后再重復(fù)上述步驟。編譯一個(gè)已打開(kāi)的程序也可簡(jiǎn)單地單擊[Build All]的標(biāo)志符。執(zhí)行編譯好的程序,單擊執(zhí)行標(biāo)

21、志!。,25,如要打開(kāi)已存在的C++ .CPP源程序,可按以下步驟打開(kāi):1.打開(kāi)VC++窗口,單擊[File]->[Open];2.在彈出對(duì)話框找文件所在文件夾,選中文件,單擊打開(kāi)按鈕,把文件調(diào)入VC++編輯窗。3.在VC++菜單條中單擊[Build]->[Compile],單擊是按鈕。4.無(wú)編輯錯(cuò),單擊[Build]->[Build];無(wú)連接錯(cuò),單擊[Build]->[Execute]執(zhí)行程序;運(yùn)行結(jié)

22、束,按任意鍵退回VC++窗口。編譯一個(gè)已打開(kāi)的程序也可簡(jiǎn)單地單擊[Build All]的標(biāo)志符。執(zhí)行編譯好的程序,單擊!,26,用VC++開(kāi)發(fā)程序的過(guò)程,用App Wizard新建一個(gè)工程編輯代碼編譯代碼調(diào)試和執(zhí)行程序,27,App Wizard,App Wizard(應(yīng)用程序生成器)是Visual C++自帶的一個(gè)工具,通過(guò)它,可以方便地生成各種類(lèi)型的程序的框架。選擇菜單中的File---->New…,即可以使用App

23、 Wizard來(lái)新建程序。可以新建的內(nèi)容包括File、Project、Workspaces、Other Documents四個(gè)頁(yè)面,每個(gè)頁(yè)面下有各種類(lèi)型的工程或文件。選定類(lèi)型之后,即進(jìn)入Wizard(向?qū)В?,讓用?hù)選擇一些可選項(xiàng),完成之后,程序的框架即生成。,28,用App Wizard新建一個(gè)工程,在File菜單上,點(diǎn)New,選擇Projects標(biāo)簽。從列表中選擇項(xiàng)目類(lèi)型。點(diǎn)Create New Workspace(新建工作區(qū)

24、)或Add to Current Workspace(加入到當(dāng)前工作區(qū)中)。要使新工程為子工程,可以選擇Dependency of 檢查框,并從列表中選擇一個(gè)工程。在Project Name框中,輸入新工程名,確保該名字必須與工作區(qū)中的別的工程名字不重名 。在Location框中,指定工程存放的目錄:可以直接輸入路徑名,也可以按旁邊的Browse按鈕,瀏覽選擇一個(gè)路徑 。點(diǎn)Platform框中的相應(yīng)檢查框,指定工程的開(kāi)發(fā)平臺(tái) 。

25、輸入完以上內(nèi)容并按OK按鈕后,根據(jù)所選的工程類(lèi)型,會(huì)出現(xiàn)相應(yīng)的Wizard(向?qū)ВMㄟ^(guò)一系列的對(duì)話框輸入,快速生成工程的框架。,29,新建一個(gè)C++程序,在File菜單上,點(diǎn)節(jié)New,選擇File標(biāo)簽。從列表中選擇C/C++源程序。在編輯窗鍵入源程序 。文件保存,源程序文件的名必需為.C或.CPP點(diǎn)節(jié)編譯命令 。若程序有錯(cuò),重新編輯源程序,改正錯(cuò)誤后,重新編譯。編譯沒(méi)有錯(cuò)誤后,點(diǎn)節(jié)執(zhí)行命令,程序開(kāi)始執(zhí)行。,30,繼續(xù)新建

26、一個(gè)C++程序,在File菜單上,點(diǎn)節(jié)Close關(guān)閉編輯窗,點(diǎn)節(jié)Close Workspace關(guān)閉工作空間。然后重復(fù)新建一個(gè)C/C++程序的全部工作。,修正一個(gè)已有的C++程序,1、在File菜單上,點(diǎn)節(jié)Open,打開(kāi)一個(gè)已有的C++程序。2、在編輯窗修改源程序 。3、點(diǎn)節(jié)編譯命令 。4、若程序有錯(cuò),重新編輯源程序,改正錯(cuò)誤后,重新編譯。5、編譯沒(méi)有錯(cuò)誤后,點(diǎn)節(jié)執(zhí)行命令,程序開(kāi)始執(zhí)行。,31,開(kāi)始實(shí)踐--第一個(gè)VC程序,新建一

27、個(gè)新工程,在項(xiàng)目類(lèi)型中選“Win32 Console Application”。在Project Name框中輸入test1,將Create New Workspace選擇框選中。按OK按鈕。在出現(xiàn)的Wizard對(duì)話框中選擇A Simple Application,然后按Finish按鈕。在接下來(lái)出現(xiàn)的對(duì)話框中按OK。,32,編譯運(yùn)行程序,選擇菜單中的Build---->Build test1.exe在輸出窗口會(huì)出現(xiàn) “

28、test1.exe - 0 error(s), 0 warning(s)”,說(shuō)明編譯通過(guò)。選擇菜單中的Build---->Execute test1.exe 。出現(xiàn)運(yùn)行結(jié)果。,33,程序運(yùn)行結(jié)果,圖3,34,編輯代碼,在工作空間窗口中選 ClassView頁(yè)面。雙擊Global下的main方法,右邊的編輯窗口顯示了main方法所在源文件的內(nèi)容。在編輯窗口中的return 0 的前面插入一行“printf("thi

29、s is my firstprogram!\n");”。在#include “stdafx.h” 那行之后插入一行#include "stdio.h"保存文件,35,重新編譯并運(yùn)行,選擇菜單中的Build---->Build test1.exe如果在輸出窗口出現(xiàn) test1.exe - 0 error(s), 0 warning(s) 說(shuō)明編譯通過(guò);如果顯示有錯(cuò)誤,則需要修改源文件直

30、到編譯通過(guò)。選擇菜單中的Build---->Execute test1.exe 。出現(xiàn)運(yùn)行結(jié)果。,36,修改過(guò)的程序運(yùn)行結(jié)果,圖4,37,調(diào)試程序,編譯錯(cuò)誤是因?yàn)槌绦虼a不符合C++語(yǔ)法、單詞拼寫(xiě)錯(cuò)誤、函數(shù)調(diào)用參數(shù)使用不當(dāng)?shù)龋ㄟ^(guò)編譯和檢查程序能比較方便地改正。若運(yùn)行結(jié)果與預(yù)期結(jié)果不同,則需要用調(diào)試程序來(lái)找到程序中錯(cuò)誤的地方,并排除所有的錯(cuò)誤。選擇菜單中的Build--->Start Debug,啟用調(diào)試器。調(diào)試器

31、有四個(gè)子菜單:[Go] [Step Into] [Run to cursor] [Attach to process],38,-->Go 從當(dāng)前語(yǔ)句開(kāi)始執(zhí)行,直到遇到斷點(diǎn),或程序執(zhí)行結(jié)束。用Go啟動(dòng)調(diào)試器,從頭開(kāi)始執(zhí)行程序。-->Step Into 單步執(zhí)行每一程序行,遇到函數(shù)調(diào)用進(jìn)入函數(shù)體內(nèi)單步執(zhí)行。-->Run to cursor 運(yùn)行程序至當(dāng)前光標(biāo)位置。-->Attach to p

32、rocess 將調(diào)試器與當(dāng)前運(yùn)行的某個(gè)進(jìn)程聯(lián)系起來(lái),可跟蹤進(jìn)入進(jìn)程內(nèi)部,調(diào)試運(yùn)行中的進(jìn)程。,39,調(diào)試命令菜單項(xiàng) 快捷鍵 作用Go F5 運(yùn)行程序至斷點(diǎn),或程序結(jié)束Restart Ctrl+Shift+F5 重新載入程序,并啟動(dòng)執(zhí)行Stop Deb. Shift+F5 關(guān)閉調(diào)試會(huì)話Break

33、 從當(dāng)前位置退出,終止程序執(zhí)行Step Into F11 單步執(zhí)行,并進(jìn)入調(diào)用函數(shù)Step Over F10 單步執(zhí)行,但不進(jìn)入函數(shù)Step Out Shift+F11 跳出當(dāng)前函數(shù),回到調(diào)用處Run to Cursor Ctrl+F10 運(yùn)行止當(dāng)前光標(biāo)處Exceptions 設(shè)置異常,

34、可以選擇遇到異常處停止, 或遇到未處理的異常處停止Threads 線程調(diào)試,可以掛起、恢復(fù)、切換線程Step Into Specific Function 直接進(jìn)入函數(shù),用于調(diào)試多層嵌套的函數(shù),4

35、0,在View菜單下還提供一個(gè)Debug Windows菜單的幾個(gè)子菜單,用于隱藏或顯示與調(diào)試工作相關(guān)的一些窗口。菜單項(xiàng) 快捷鍵 作用Watch Alt+3 顯示窗口,用于觀察和設(shè)置變量值Variables Alt+4 觀察與當(dāng)前函數(shù)相關(guān)的變量Registers Alt+5 觀察微處理器的寄存器Memory Alt+6 觀察未使用的

36、內(nèi)存塊Call Stack Alt+7 顯示調(diào)用棧,觀察調(diào)用的函數(shù)Disassembly Alt+8 打開(kāi)窗口顯示匯編程序代碼斷點(diǎn)是程序調(diào)試過(guò)程中暫時(shí)停止執(zhí)行的地方。在斷點(diǎn)處,可以觀察、設(shè)置變量的值,檢查程序是否按所期望的邏輯執(zhí)行。,41,插入斷點(diǎn) 在源程序窗口內(nèi)任一程序行上按鼠標(biāo)右鍵,從右鍵快捷菜單中選擇[Insert/Remove Breakpoint]菜單項(xiàng),就可以將當(dāng)前語(yǔ)句行作為一個(gè)斷點(diǎn)。在該語(yǔ)句行左邊,有一個(gè)紅色

37、實(shí)心圓指示該行是一個(gè)斷點(diǎn)。刪除斷點(diǎn) 在有斷點(diǎn)的語(yǔ)句行上按右鍵彈出快捷菜單,選擇[Remove Breakpoint]菜單項(xiàng),就可刪除該斷點(diǎn)。禁止斷點(diǎn) 在斷點(diǎn)處的右鍵快捷菜單上選擇[Disable Breakpoint]菜單項(xiàng),暫時(shí)禁止該斷點(diǎn),該斷點(diǎn)可能以后再用。該位置將變?yōu)橛每招膱A標(biāo)記?;謴?fù)斷點(diǎn) 在禁止斷點(diǎn)處,用右鍵快捷菜單選擇[Enable Breakpoint]菜單項(xiàng),恢復(fù)起用曾被禁止的斷點(diǎn)。,42,開(kāi)發(fā)窗口程序,新建一個(gè)新工

38、程,在項(xiàng)目類(lèi)型中選“Win32 Application”。在Project Name框中輸入test2,將Create New Workspace選擇框選中。按OK按鈕。在出現(xiàn)的Wizard對(duì)話框中選擇A Typical Hello world Application,然后按Finish按鈕。在接下來(lái)出現(xiàn)的New Project Information對(duì)話框中按OK。編譯代碼、運(yùn)行代碼。,43,窗口程序運(yùn)行結(jié)果,圖5,44,獲

39、取幫助,為什么要獲取幫助不可能也沒(méi)有必要去記住所有的知識(shí)幫助文檔可以使程序員事半功倍獲取幫助的途徑MSDN聯(lián)機(jī)幫助參考書(shū)INTERNET,45,MSDN聯(lián)機(jī)文檔,,圖6,46,使用MSDN,Contents(目錄)選項(xiàng)卡當(dāng)你頭腦中有一個(gè)大概的主題,而你又想要看一看這個(gè)主題有哪些文檔時(shí),目錄表是非常有用的。Index(索引)選項(xiàng)卡Index(索引)選項(xiàng)卡顯示了整套MSDN文件的全面索引,只要打入關(guān)鍵字,就可以立刻找到你要

40、找的東西。Search(搜索)選項(xiàng)卡MSDN幫助文件集包含一個(gè)搜索引擎,它能進(jìn)行全文本搜索來(lái)確定哪些主題文件包含了指定的詞或短語(yǔ)。Favorites(收藏)選項(xiàng)卡它維護(hù)著一個(gè)標(biāo)記選擇過(guò)的文章的書(shū)簽列表,使你能迅速找到你曾經(jīng)看過(guò)的內(nèi)容。,47,基于MFC 的GUI編程,48,1.Windows編程-1,事件驅(qū)動(dòng)和消息機(jī)制是Windows編程的基礎(chǔ)。Windows是消息驅(qū)動(dòng)(或事件驅(qū)動(dòng))的操作系統(tǒng)。消息驅(qū)動(dòng)意味著操作系統(tǒng)的每個(gè)部

41、分與其它部分,以及應(yīng)用程序之間通過(guò)Windows消息進(jìn)行通信。例如當(dāng)我們移動(dòng)鼠標(biāo)或按下鍵盤(pán)上某個(gè)鍵,Windows就會(huì)捕捉到這個(gè)消息,并存儲(chǔ)到消息隊(duì)列中等待處理(通常是轉(zhuǎn)發(fā)給相應(yīng)的操作系統(tǒng)某個(gè)處理程序或者應(yīng)用程序)。,49,1.Windows編程-1,以前的軟件開(kāi)發(fā)者采用SDK(Windows Software Development Kit 軟件開(kāi)發(fā)工具包)進(jìn)行Windows編程。SDK的核心內(nèi)容是API(應(yīng)用程序編程接口)、事件驅(qū)

42、動(dòng)和消息循環(huán)。API是一個(gè)程序包,其內(nèi)有一組函數(shù),供程序員用它創(chuàng)建其他程序。Windows正是利用API實(shí)現(xiàn)圖形用戶(hù)界面(GUI)。,50,1.Windows編程-2,選擇為開(kāi)發(fā)Windows應(yīng)用而設(shè)計(jì)的精美的應(yīng)用程序框架(Application framework)。 Application framework是一個(gè)完整的程序模型,具備標(biāo)準(zhǔn)應(yīng)用軟件所需的一切基本功能,如文件存取、打印預(yù)覽。Application framewor

43、k提供了標(biāo)準(zhǔn)的程序模型,我們只需要按個(gè)人需要添加一些材料:在派生類(lèi)中改寫(xiě)虛擬函數(shù),或在派生類(lèi)中加上新的程序函數(shù)。微軟的MFC是一種十分成功的Application framework。,51,1.Windows編程-2,MFC(Microsoft Foundation Classes 微軟基礎(chǔ)類(lèi))是一個(gè)建立在Windows API基礎(chǔ)上的C++類(lèi)庫(kù),目的是使Windows程序設(shè)計(jì)過(guò)程更有效率。我們可以把MFC看作一個(gè)零組件“超級(jí)市場(chǎng)”。

44、這些零組件(類(lèi))功能以及彼此間的關(guān)系都已經(jīng)定義好,我們可以從中選擇自己需要的零件構(gòu)造出一個(gè)應(yīng)用程序。靜態(tài)情況下MFC是一組類(lèi),在程序執(zhí)行期間就生成一組有活動(dòng)力的對(duì)象組。MFC程序沒(méi)有main函數(shù)這樣的入口,它的執(zhí)行由application object(一個(gè)派生自MFC CWinApp的全局對(duì)象)引發(fā),引發(fā)后我們選用的MFC類(lèi)就依次實(shí)例化開(kāi)始運(yùn)行了。,52,2. MFC AppWizard,AppWizard(Application

45、 Wizard)俗稱(chēng)“應(yīng)用程序創(chuàng)建向?qū)А?。使用MFC AppWizard可以創(chuàng)建基于MFC類(lèi)庫(kù)的Windows應(yīng)用程序(可執(zhí)行文件.exe或者動(dòng)態(tài)連接庫(kù).dll)。 MFC AppWizard提供一系列對(duì)話框,用戶(hù)可以從中選擇滿足需要的選項(xiàng)。定義完應(yīng)用程序和項(xiàng)目選項(xiàng)后,MFC AppWizard生成創(chuàng)建應(yīng)用程序所需要的初始框架文件。MFC AppWizard可以創(chuàng)建三種類(lèi)型的應(yīng)用程序: 1. Single document

46、s(單文檔 SDI):一次只允許打開(kāi)一個(gè)子文檔窗體。 2. Multiple documents (多文檔 MDI):允許打開(kāi)多個(gè)子文檔窗體。 3. Dialog-Based (基于對(duì)話框):基于對(duì)話框的應(yīng)用程序?qū)@示一個(gè)對(duì) 話框供用戶(hù)輸入或者進(jìn)行選擇。三種類(lèi)型應(yīng)用程序的示例如下:,53,圖7 SDI程序示例(Windows記事本),54,圖8 MDI程序示例(又如微軟的Word),55,圖9 Dialo

47、g-Based程序示例(Windows我的電腦中文件夾選項(xiàng)設(shè)置窗口),56,3. 一個(gè)簡(jiǎn)單的多文檔應(yīng)用程序?qū)嵗?利用編程工具M(jìn)FC AppWizard。不需要增添一句代碼就可獲得標(biāo)準(zhǔn)的多文檔應(yīng)用程序框架,包括打印等高級(jí)功能。程序運(yùn)行界面如圖8所示。首先新建project,選擇的工程類(lèi)型是:MFC AppWizard (exe),示例項(xiàng)目名可自己設(shè)定,這里為mditest。,57,接下去的step-1的選項(xiàng)中,創(chuàng)建的程序類(lèi)型選擇M

48、ultiple documents(多文檔),其余選項(xiàng)使用缺省值。Document/View architecture support?(文檔/視圖結(jié)構(gòu)支持)選項(xiàng)缺省已經(jīng)是選中狀態(tài)。這一項(xiàng)如果不選中,則程序運(yùn)行時(shí)不支持文檔的打開(kāi)/保存操作(需要文檔/視圖結(jié)構(gòu)支持才有效)。語(yǔ)言支持選擇中文。,58,圖10 MFC AppWizard-Step 1,59,圖11 MFC AppWizard-Step 2這一步選擇數(shù)據(jù)庫(kù)支持,當(dāng)前示例程

49、序不需要。,60,圖12 MFC AppWizard-Step 3 這一步選擇混合文檔和ActiveX支持,當(dāng)前示例程序只需要支持純文本文檔。為求簡(jiǎn)化,ActiveX Controls支持也可以不要。,61,圖13 MFC AppWizard-Step 4 這一步選擇用戶(hù)界面特性,例如標(biāo)準(zhǔn)工具欄、狀態(tài)條、打印以及預(yù)覽、上下文敏感幫助、3D風(fēng)格等。第二部分選擇工具欄風(fēng)格。第三部分是選擇文件菜單中的最近使用

50、文件列表中顯示的文件數(shù)量。,62,圖14 MFC AppWizard-Step 5 這一步選擇程序以及代碼風(fēng)格。第一項(xiàng)是程序風(fēng)格,MFC標(biāo)準(zhǔn)風(fēng)格和Windows瀏覽器風(fēng)格。第二項(xiàng)是詢(xún)問(wèn)是否需要為程序代碼生成一些說(shuō)明文字。第三項(xiàng)是選擇希望使用的MFC版本(動(dòng)態(tài)連接版或者靜態(tài))。,63,圖15 MFC AppWizard-Step 6 這是最后一步,允許用戶(hù)在這里更改各文件名和類(lèi)名。在上面的類(lèi)列表中選中一個(gè)類(lèi)

51、,下面顯示的就是相應(yīng)的類(lèi)名、頭文將名、基類(lèi)和實(shí)現(xiàn)文件名。這里為了使文檔可編輯,將CMditestView的基類(lèi)改為CEditView。完成后點(diǎn)擊Finish完成向?qū)А?64,圖16 項(xiàng)目信息顯示用戶(hù)在前面各步所作選擇,點(diǎn)擊OK完成,否則Cancel重新選擇。,65,圖17 項(xiàng)目文件列表 根據(jù)用戶(hù)選擇,VC已經(jīng)生成了所需的全部文件。這個(gè)程序已經(jīng)可以運(yùn)行,運(yùn)行結(jié)構(gòu)就是圖2所示的效果。程序已經(jīng)具有標(biāo)準(zhǔn)的打開(kāi)、編輯、保存以及

52、打印等功能,而我們沒(méi)有添加一行代碼。,66,4. 自己添加代碼的sayhello程序,這部分我們演示一個(gè)對(duì)話框程序,添加一些標(biāo)準(zhǔn)控件,并添加代碼控制程序的行為。新建project,名稱(chēng)為sayhello,利用AppWizard,只需要在指定程序類(lèi)型為Dialog-Based之后,就可以點(diǎn)擊Finish,完成程序框架。程序界面如右上圖。點(diǎn)擊提示按鈕,彈出提示框顯示文本框中字符串如右下圖;點(diǎn)擊添加按鈕,文本框中字符串添加到列表中(如果

53、不重復(fù)的話);點(diǎn)擊取消關(guān)閉整個(gè)窗口。,圖18,67,圖19 框架創(chuàng)建后的編輯區(qū) 根據(jù)用戶(hù)選擇,VC已經(jīng)為我們生成了所需的程序框架。這里要編輯的主要是sayhello主窗口,已經(jīng)生成的有一個(gè)靜態(tài)文本,兩個(gè)按鈕。右邊的控件窗口顯示一些標(biāo)準(zhǔn)窗口控件,可以通過(guò)拖放操作添加到窗口。,68,圖20編輯控件屬性 右鍵點(diǎn)擊某控件,選擇Properties,彈出該控件的屬性設(shè)置窗口,如圖。可以設(shè)置控件標(biāo)題(captio

54、n)、可見(jiàn)性、對(duì)齊等屬性,這些屬性、風(fēng)格設(shè)置分布在三個(gè)頁(yè)(General、Styles、Extended Styles)上。這里我們主要需要設(shè)定的是Caption,設(shè)置為:What do you want to say ?,69,圖21 完成界面設(shè)置 保留原來(lái)的取消按鈕,刪除確定按鈕,添加兩個(gè)按鈕和一個(gè)Combo Box控件,屬性中Styles頁(yè)設(shè)置情況如圖。通過(guò)拖放、對(duì)齊操作后完成界面構(gòu)造如圖。其中幾個(gè)控件的對(duì)齊可以通

55、過(guò)選中多個(gè)控件后右鍵菜單中相關(guān)的Aligh選項(xiàng)實(shí)現(xiàn)。,70,圖22 設(shè)置成員變量名 點(diǎn)中某一控件,右鍵菜單中選擇ClassWizard進(jìn)行類(lèi)設(shè)置。在Member Variables(成員變量頁(yè))選擇CSayhelloDlg(代表主窗口)類(lèi),設(shè)置三個(gè)按鈕和一個(gè)ComBox的變量名如圖(通過(guò)雙擊相應(yīng)條目編輯)。注意這里Category選擇Control,變量類(lèi)型也正確指定。這樣在代碼中就可以通過(guò)這些名字引用相應(yīng)控件對(duì)象。,7

56、1,圖23添加消息映射方法 仍然是在ClassWizard中,這里添加相應(yīng)對(duì)象的消息處理方法。Class name中指定要處理的類(lèi),這里是主窗口類(lèi)CSayhelloDlg,選擇IDADD對(duì)象(“添加”按鈕)和BN_CLICKED消息(單擊),然后點(diǎn)擊Add Function,指定方法名后,相應(yīng)的消息處理方法框架就生成了。,72,圖24添加消息映射方法 在上一步中點(diǎn)擊Edit Code,編輯“添加”

57、按鈕單擊消息的處理方法代碼。添加的代碼如圖,主要過(guò)程是獲取ComBox輸入框字符串,判斷是否為控,以及ComBox中是否已存在此字符串,如果不存在則添加并將光標(biāo)定位于第一項(xiàng)。代碼中的TODO注釋是生成框架時(shí)自動(dòng)生成的。,73,圖25添加“提示”按鈕單擊方法 與“添加”按鈕類(lèi)似的添加“提示”按鈕的單擊消息處理方法OnShow,代碼如圖。完成的操作是取得ComBox文本輸入內(nèi)容并跳出一個(gè)提示窗口顯示該字符串。,74,5. 結(jié)束

58、語(yǔ),如第4部分這樣一步步操作就完成了一個(gè)窗口程序,編譯鏈接后就可以得到可執(zhí)行程序。更加復(fù)雜的窗口程序可以用相似的過(guò)程得到,使用的應(yīng)用程序框架也與此類(lèi)似。只是可能會(huì)用到更多更復(fù)雜的MFC類(lèi),需要用戶(hù)根據(jù)實(shí)際需要繼承或引用各種MFC類(lèi),處理這些類(lèi)之間的關(guān)系。還有可能需要在派生類(lèi)中改寫(xiě)虛擬函數(shù)或者添加新的成員函數(shù)。總之在Application Framework框架下,你可以以MFC類(lèi)庫(kù)為材料來(lái)源創(chuàng)造出符合各種需要的應(yīng)用程序。各種相關(guān)類(lèi)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論