




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、75實(shí)驗(yàn)10 數(shù)據(jù)庫(kù)(2)實(shí) 驗(yàn)實(shí)驗(yàn)0 Visual C+ 6.0中文版開(kāi)發(fā)環(huán)境實(shí)驗(yàn)?zāi)康暮鸵螅?)熟悉Visual C+ 6.0的開(kāi)發(fā)環(huán)境(工具欄及各種窗口)。(2)顯示和隱藏工具欄。(3)用應(yīng)用程序向?qū)?chuàng)建一個(gè)控制臺(tái)應(yīng)用項(xiàng)目Ex_Hello。(4)輸入并編譯一個(gè)新的C+程序。實(shí)驗(yàn)準(zhǔn)備和說(shuō)明(1)在第一次上課時(shí)進(jìn)行本次實(shí)驗(yàn)。(2)熟悉Windows 2000操作系統(tǒng)的環(huán)境和基本操作。(3)熟悉實(shí)驗(yàn)報(bào)告的書(shū)寫(xiě)格式,這里給出下列建議:實(shí)驗(yàn)報(bào)告采用A4大小紙張,封面一般包含實(shí)驗(yàn)?zāi)看?、?shí)驗(yàn)題目、班級(jí)、姓名、日期和機(jī)構(gòu)名稱。報(bào)告內(nèi)容一般包括實(shí)驗(yàn)?zāi)康暮鸵蟆?shí)驗(yàn)步驟、實(shí)驗(yàn)思考和總結(jié)。需要指出的是,實(shí)驗(yàn)步
2、驟不是書(shū)本內(nèi)容的復(fù)制,而是自己結(jié)合實(shí)驗(yàn)內(nèi)容進(jìn)行探索的過(guò)程。教師也可根據(jù)具體情況提出新的實(shí)驗(yàn)報(bào)告格式。(4)閱讀下列關(guān)于Visual C+的說(shuō)明:Visual C+是Microsoft公司推出的目前使用極為廣泛的基于Windows平臺(tái)的可視化編程環(huán)境。Visual C+ 6.0是在以往版本不斷更新的基礎(chǔ)上形成的,由于其功能強(qiáng)大、靈活性好、完全可擴(kuò)展以及具有強(qiáng)有力的Internet支持,在各種C+語(yǔ)言開(kāi)發(fā)工具中脫穎而出,成為目前最為流行的C+語(yǔ)言集成開(kāi)發(fā)環(huán)境。Visual C+ 6.0分為標(biāo)準(zhǔn)版、專業(yè)版和企業(yè)版3種,但其基本功能是相同的。Visual C+ 6.05中文版是在Visual C+ 6
3、.0基礎(chǔ)上進(jìn)行漢化的一個(gè)版本,本書(shū)以此版本作為編程環(huán)境。為統(tǒng)一起見(jiàn),本書(shū)仍稱為Visual C+ 6.0,并以Windows 2000作為操作系統(tǒng)。實(shí)驗(yàn)內(nèi)容和步驟1啟動(dòng)Windows 2000操作系統(tǒng)打開(kāi)計(jì)算機(jī),啟動(dòng)Windows 2000操作系統(tǒng)。2創(chuàng)建工作文件夾圖0.1 顯示提示對(duì)話框創(chuàng)建Visual C+ 6.0的工作文件夾“Visual C+程序?qū)嶒?yàn)”(表示自己的文件夾),在文件夾“實(shí)驗(yàn)”下再創(chuàng)建一個(gè)文件夾“實(shí)驗(yàn)0”,下一次實(shí)驗(yàn)就在“實(shí)驗(yàn)”文件夾下創(chuàng)建子文件夾“實(shí)驗(yàn)1”,依此類推。以后實(shí)驗(yàn)所創(chuàng)建的工程都在相應(yīng)的文件夾下,這樣既便于管理,又容易查找。3啟動(dòng)Visual C+ 6.0選擇“
4、開(kāi)始”“程序”Microsoft Visual Studio 6.0Microsoft Visual C+ 6.0,運(yùn)行Visual C+ 6.0。第一次運(yùn)行時(shí),將顯示“當(dāng)時(shí)的提示”對(duì)話框。單擊“下一個(gè)提示”按鈕,可看到有關(guān)各種操作的提示。如果取消選中“再啟動(dòng)時(shí)顯示提示”復(fù)選框,那么下一次運(yùn)行Visual C+ 6.0,將不再出現(xiàn)此對(duì)話框,如圖0.1所示。4認(rèn)識(shí)開(kāi)發(fā)環(huán)境界面工具欄菜單欄項(xiàng)目工作區(qū)窗口輸出窗口文檔窗口輸出窗口標(biāo)簽標(biāo)題欄狀態(tài)欄單擊“結(jié)束”按鈕關(guān)閉此對(duì)話框,進(jìn)入Visual C+ 6.0開(kāi)發(fā)環(huán)境。開(kāi)發(fā)環(huán)境界面由標(biāo)題欄、菜單欄、工具欄、項(xiàng)目工作區(qū)窗口、文檔窗口、輸出窗口和狀態(tài)欄等組成,
5、如圖0.2所示。圖0.2 Visual C+ 6.0中文版開(kāi)發(fā)環(huán)境標(biāo)題欄一般有“最小化”、“最大化” 或“還原” 以及“關(guān)閉” 按鈕,單擊“關(guān)閉”按鈕將退出開(kāi)發(fā)環(huán)境。標(biāo)題欄上還顯示出當(dāng)前被操作的文檔的文件名。菜單欄包含了開(kāi)發(fā)環(huán)境中幾乎所有的命令,它為用戶提供了文檔操作、程序的編譯、調(diào)試、窗口操作等一系列的功能。菜單中的一些常用命令還被排列在相應(yīng)的工具欄上,以便用戶更好地操作。項(xiàng)目工作區(qū)窗口包含用戶項(xiàng)目的一些信息,包括:類(ClassView頁(yè)面)、項(xiàng)目文件(FileView頁(yè)面)和資源(ResourceView頁(yè)面)等。在項(xiàng)目工作區(qū)窗口中的任何標(biāo)題或圖標(biāo)處單擊鼠標(biāo)右鍵,都會(huì)彈出相應(yīng)的快捷菜單,
6、包含當(dāng)前狀態(tài)下的一些常用操作。文檔窗口一般位于開(kāi)發(fā)環(huán)境中的右邊,各種程序代碼的源文件、資源文件、文檔文件等都可以通過(guò)文檔窗口顯示出來(lái)。輸出窗口一般出現(xiàn)在開(kāi)發(fā)環(huán)境窗口的底部,包括編譯(Build)、調(diào)試(Debug)、查找文件(Find in Files)等相關(guān)信息的輸出。這些輸出信息以多頁(yè)面標(biāo)簽的形式出現(xiàn)在輸出窗口中,例如“編譯”頁(yè)面標(biāo)簽顯示的是程序在編譯和連接時(shí)的進(jìn)度及錯(cuò)誤信息。狀態(tài)欄一般位于開(kāi)發(fā)環(huán)境的最底部,它用來(lái)顯示當(dāng)前操作狀態(tài)、注釋、文本光標(biāo)所在的行列號(hào)等信息。5顯示和隱藏工具欄顯示或隱藏工具欄可以使用“定制”對(duì)話框或快捷菜單兩種方式進(jìn)行操作。(1)“定制”對(duì)話框方式操作步驟如下: 選
7、擇“工具”菜單“定制”菜單項(xiàng),彈出“定制”對(duì)話框,如圖0.3所示。圖0.3 “定制”對(duì)話框圖0.4 工具欄的快捷菜單 單擊“工具欄”標(biāo)簽項(xiàng),將顯示出所有的工具欄名稱,凡顯示在開(kāi)發(fā)環(huán)境上的工具欄名稱前面均帶有選中標(biāo)記。 單擊“編譯”工具欄名稱,復(fù)選框中帶有選中標(biāo)記,該工具欄將顯示開(kāi)發(fā)環(huán)境中。再單擊“編譯”工具欄名稱,復(fù)選框的選中標(biāo)記將去除,該工具欄從開(kāi)發(fā)環(huán)境中消失。其他工具欄的顯示和隱藏均可類似操作。(2)快捷菜單方式如果嫌上述操作不夠便捷,那么可以在開(kāi)發(fā)環(huán)境中工具欄或菜單欄處右擊鼠標(biāo),將會(huì)彈出一個(gè)包含工具欄名稱的快捷菜單,如圖0.4所示,凡顯示在開(kāi)發(fā)環(huán)境上的工具欄,其相應(yīng)的菜單項(xiàng)前面就會(huì)有選中
8、標(biāo)記。對(duì)相應(yīng)的工具欄進(jìn)行選擇將使其顯示或隱藏。6工具欄的浮動(dòng)與停泊Visual C+ 6.0的工具欄具有“浮動(dòng)”與“停泊”功能。Visual C+ 6.0啟動(dòng)后,系統(tǒng)默認(rèn)將常用工具欄“停泊”在主窗口的頂部。若將鼠標(biāo)指針指向工具欄的非按鈕區(qū)域,可以將工具欄拖放到主窗口的四周或中央。如果拖放到窗口的中央處,則工具欄成為“浮動(dòng)”的工具窗口。窗口的標(biāo)題就是工具欄的類型名稱。拖放工具欄窗口的邊或角可以改變其 形狀。圖0.5 浮動(dòng)的“標(biāo)準(zhǔn)”工具欄例如,將鼠標(biāo)指針指向“標(biāo)準(zhǔn)”工具欄的非按鈕區(qū)域,按住鼠標(biāo)左鍵不放,將其拖至屏幕中央,釋放鼠標(biāo)左鍵,觀察變化。再將鼠標(biāo)指針移至工具欄窗口的邊界處,按住鼠標(biāo)左鍵不放并
9、拖動(dòng),觀察大小的變化。圖0.5是“標(biāo)準(zhǔn)”工具欄浮動(dòng)的狀態(tài),其大小已被拖放過(guò)。當(dāng)然,浮動(dòng)和停泊兩種狀態(tài)可以進(jìn)行切換。在“浮動(dòng)”的工具窗口標(biāo)題欄處雙擊鼠標(biāo)左鍵或?qū)⑵渫戏诺街鞔翱诘乃闹埽寄苁蛊渫2丛谙鄳?yīng)的位置處。在“停泊”工具欄的非按鈕區(qū)域雙擊鼠標(biāo)左鍵,可切換成“浮動(dòng)”的工具窗口。7創(chuàng)建和編連控制臺(tái)應(yīng)用項(xiàng)目在Visual C+ 6.0中,用應(yīng)用程序向?qū)?chuàng)建和編連一個(gè)控制臺(tái)應(yīng)用程序,可按下列步驟進(jìn)行: 選擇“文件”“新建”菜單命令,顯示出“新建”對(duì)話框,如圖0.6所示。圖0.6 新建一個(gè)工程 選擇“工程”標(biāo)簽,并從列表框中選中Win32 Console Application項(xiàng)。 在“工程”編輯框中
10、鍵入控制臺(tái)應(yīng)用程序項(xiàng)目名稱Ex_Hello,并將項(xiàng)目文件夾定位到“D:Visual C+程序?qū)嶒?yàn)實(shí)驗(yàn)0”。 單擊“確定”按鈕,顯示W(wǎng)in32應(yīng)用程序向?qū)?duì)話框。第一步是詢問(wèn)項(xiàng)目類型,如圖0.7所示。圖0.7 控制臺(tái)應(yīng)用程序的第1步 選中A “Hello, World!” application項(xiàng)。單擊“完成”按鈕,系統(tǒng)將顯示向?qū)?chuàng)建的信息,單擊“確定”按鈕將自動(dòng)創(chuàng)建此應(yīng)用程序。 默認(rèn)時(shí),項(xiàng)目工作區(qū)窗口顯示的是ClassView頁(yè)面,將所有內(nèi)容展開(kāi),雙擊main項(xiàng),在文檔窗口中將main函數(shù)體中的"Hello World!n"改為"I Like Visual C+
11、6.0中文版!n",結(jié)果如圖0.8所示。圖0.8 修改代碼說(shuō)明:在輸入字符和漢字時(shí),要切換到相應(yīng)的輸入方法中,除了字符串和注釋可以使用漢字外,其余一律采用英文字符輸入。代碼中,stdafx.h是每個(gè)應(yīng)用程序所必有的預(yù)編譯頭文件,程序所用到的Visual C+頭文件包含均添加到這個(gè)文件中。 單擊編譯工具條上的生成工具按鈕或直接按快捷鍵F7,系統(tǒng)開(kāi)始對(duì)Ex_Hello進(jìn)行編譯、連接,同時(shí)在輸出窗口中觀察出現(xiàn)的內(nèi)容,當(dāng)出現(xiàn):表示Ex_Hello.exe可執(zhí)行文件已經(jīng)正確無(wú)誤地生成了。圖0.9 運(yùn)行結(jié)果 單擊編譯工具條上的運(yùn)行工具按鈕或直接按快捷鍵Ctrl+F5,就可以運(yùn)行剛剛生成的Ex_H
12、ello.exe了,結(jié)果如圖0.9所示。8輸入并編譯一個(gè)新的C+程序 選擇“文件”“關(guān)閉工作區(qū)”菜單,關(guān)閉原來(lái)的項(xiàng)目。 按上面的方法創(chuàng)建一個(gè)Win32 Console Application項(xiàng)目Ex_Simple,在向?qū)У牡谝徊街羞x擇An empty project類型。 再次選擇“文件”“新建”菜單命令,顯示出“新建”對(duì)話框“文件”頁(yè)面,如圖0.10所示。圖0.10 “新建”對(duì)話框的“文件”頁(yè)面 在文件類型列表中選擇C+ Source File,然后在“文件”框中輸入要?jiǎng)?chuàng)建的文件名Ex_Simple,文件擴(kuò)展名可以不必輸入,系統(tǒng)會(huì)自動(dòng)添加cpp擴(kuò)展名(cpp是C Plus Plus的縮寫(xiě),即
13、C+的意思)。單擊“確定”按鈕,在打開(kāi)的文檔窗口中輸入下列C+代碼:/*程序Ex_Simple,一個(gè)簡(jiǎn)單的C+程序*/ C+程序的基本結(jié)構(gòu) #include <iostream.h>void main()double r, area;/ 聲明變量cout<<"輸入圓的半徑:"/ 顯示提示信息cin>>r;/ 從鍵盤(pán)上輸入變量r的值area = 3.14159 * r * r;/ 計(jì)算面積cout<<"圓的面積為:"<<area<<"n" / 輸出面積 此時(shí)在文檔窗
14、口中所有代碼的顏色都發(fā)生改變,這是Visual C+ 6.0的文本編輯器所具有的語(yǔ)法顏色功能如圖0.11所示。其中,綠色表示注釋,藍(lán)色表示關(guān)鍵詞等。圖0.11 編輯器的代碼語(yǔ)法顏色功能 按快捷鍵F7,系統(tǒng)開(kāi)始編譯。編譯后,再按快捷鍵Ctrl+F5就可運(yùn)行了。說(shuō)明:對(duì)于C/C+語(yǔ)言工程項(xiàng)目的創(chuàng)建,凡沒(méi)有特別說(shuō)明,均采用此方法。9退出Visual C+ 6.0退出Visual C+ 6.0有兩種方式:一種是單擊主窗口右上角的“關(guān)閉”按鈕,另一種是選擇FileExit菜單。10寫(xiě)出實(shí)驗(yàn)報(bào)告結(jié)合思考與練習(xí)題,寫(xiě)出實(shí)驗(yàn)報(bào)告。思考與練習(xí)(1)除工具欄可以浮動(dòng)和停泊外,看看還有哪些窗口可以這樣操作?(2)經(jīng)
15、過(guò)創(chuàng)建項(xiàng)目文件的實(shí)驗(yàn),試總結(jié)出創(chuàng)建一個(gè)控制臺(tái)應(yīng)用項(xiàng)目的一般方法。實(shí)驗(yàn)1 Windows編程基礎(chǔ)實(shí)驗(yàn)?zāi)康暮鸵骳創(chuàng)建一個(gè)Win32應(yīng)用程序Ex_SDK,在程序中構(gòu)造一個(gè)編輯框控件和一個(gè)按鈕。編輯框用于輸入一元二次方程的系數(shù),各系數(shù)之間用逗號(hào)分隔,當(dāng)單擊“計(jì)算”按鈕,獲取方程系數(shù),然后將求得的根通過(guò)TextOut顯示在窗口客戶區(qū)中。實(shí)驗(yàn)準(zhǔn)備和說(shuō)明.(1)具備知識(shí):簡(jiǎn)單的SDK編程基礎(chǔ)。(2)準(zhǔn)備本次上機(jī)所需要的程序。(3)創(chuàng)建本次實(shí)驗(yàn)工作文件夾“Visual C+程序?qū)嶒?yàn)實(shí)驗(yàn)1”實(shí)驗(yàn)內(nèi)容和步驟1啟動(dòng)Visual C+ 6.0打開(kāi)計(jì)算機(jī),啟動(dòng)Visual C+ 6.0系統(tǒng)。2創(chuàng)建工程并添加代碼 選擇
16、“文件”“新建”菜單命令,打開(kāi)應(yīng)用程序向?qū)В@示出“新建”對(duì)話框。單擊“工程”標(biāo)簽,從列表框中選中Win32 Application(Win32 應(yīng)用程序)項(xiàng)。在工程名稱框中輸入Win32應(yīng)用程序項(xiàng)目名稱Ex_SDK。單擊瀏覽按鈕.將工程定位到文件夾 “Visual C+ 6.0程序?qū)嶒?yàn)實(shí)驗(yàn)1”。 單擊“確定”按鈕繼續(xù)。在向?qū)У谝徊綄?duì)話框中,選中An empty project(一個(gè)空的工程)項(xiàng)。單擊“完成”按鈕,系統(tǒng)將顯示AppWizard(應(yīng)用程序向?qū)В┑膭?chuàng)建信息,單擊“確定”按鈕,系統(tǒng)將自動(dòng)創(chuàng)建此應(yīng)用程序。 再次選擇“文件”“新建”菜單命令,顯示出“新建”對(duì)話框。單擊“文件”標(biāo)簽,在左邊
17、的列表框中選擇C+ Source File項(xiàng),在右邊的“文件”下的編輯框中輸入Ex_SDK.cpp,單擊“確定”按鈕。 在打開(kāi)的文檔窗口中輸入下面的代碼:#include <windows.h>#include <math.h>#include <stdio.h>/ 求一元二次方程的根,函數(shù)返回根的個(gè)數(shù)int GetRoot(float a, float b, float c, double *root)double delta, deltasqrt;delta = b*b - 4.0 * a * c;if (delta<0.0) return 0;/
18、 無(wú)根deltasqrt = sqrt(delta);if (a!=0.0) root0 = (-b + deltasqrt)/(2.0 * a);root1 = (-b - deltasqrt)/(2.0 * a); elseif (b!=0.0) root0 = root1 = -c/b;elsereturn 0;if (root0 = root1) return 1;else return 2;char str80;LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);/ 窗口過(guò)程int WINAPI WinMain (HINSTAN
19、CE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) HWND hwnd ;/ 窗口句柄 MSG msg ;/ 消息 WNDCLASSwndclass ;/ 窗口類 wndclass.style = CS_HREDRAW | CS_VREDRAW ; wndclass.lpfnWndProc = WndProc ; wndclass.cbClsExtra = 0 ; wndclass.cbWndExtra = 0 ; wndclass.hInstance = hInstance ; wndclass.hIco
20、n = LoadIcon (NULL, IDI_APPLICATION) ; wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; wndclass.lpszMenuName = NULL ; wndclass.lpszClassName = "SDKWin"/ 窗口類名 if (!RegisterClass (&wndclass)/ 注冊(cè)窗口 MessageBox (NULL, "
21、窗口注冊(cè)失??!", "HelloWin", 0) ; return 0 ; / 創(chuàng)建窗口 hwnd = CreateWindow ("SDKWin", / 窗口類名 "實(shí)驗(yàn)1Windows編程基礎(chǔ)",/ 窗口標(biāo)題 WS_OVERLAPPEDWINDOW, / 窗口樣式 CW_USEDEFAULT, / 窗口最初的 x 位置 CW_USEDEFAULT, / 窗口最初的 y 位置 CW_USEDEFAULT, / 窗口最初的 x 大小 CW_USEDEFAULT, / 窗口最初的 y 大小 NULL, / 父窗口句柄 NULL
22、, / 窗口菜單句柄 hInstance, / 應(yīng)用程序?qū)嵗浔?NULL) ; / 創(chuàng)建窗口的參數(shù) ShowWindow (hwnd, nCmdShow) ;/ 顯示窗口 UpdateWindow (hwnd) ;/ 更新窗口,包括窗口的客戶區(qū) while (GetMessage (&msg, NULL, 0, 0) TranslateMessage (&msg) ;/ 轉(zhuǎn)換某些鍵盤(pán)消息 DispatchMessage (&msg) ;/ 將消息發(fā)送給窗口過(guò)程,這里是WndProc return msg.wParam ;LRESULT CALLBACK WndProc
23、 (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)HDChdc;PAINTSTRUCTps;staticHWNDhwndButton, hwndEdit;charstrEdit80, strA380, strHint80;floata3;doubleroot2;inti, j, k, m;switch (message)case WM_CREATE:/ 窗口創(chuàng)建產(chǎn)生的消息hwndEdit = CreateWindow("edit", NULL, WS_CHILD|WS_VISIBLE|WS_ BORDER,10,
24、 60, 200, 25, hwnd, NULL, NULL, NULL );hwndButton = CreateWindow("button", "計(jì) 算",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,240, 60, 80, 25, hwnd, NULL, NULL, NULL );return 0 ; case WM_COMMAND:/ 命令消息,控件產(chǎn)生的通知代碼在wParam的高字中if (HWND)lParam = hwndButton )&&( HIWORD(wParam) = BN_CLICKED
25、 )/ 獲取編輯框控件的內(nèi)容,并將其轉(zhuǎn)換成float數(shù)值GetWindowText( hwndEdit, strEdit, 80); / 獲取編輯框內(nèi)容/ 分隔字符串k = 0;m = 0;for (j=0; j<80; j+)if (strEditj = ',')k+; m = 0;else strAkm = strEditj;m+;for (i=0; i<3; i+)ai = (float)atof(strAi);/ 將字符串轉(zhuǎn)換成float數(shù)值int n = GetRoot(a0, a1, a2, root);if (n<1)strcpy(str, &q
26、uot;方程無(wú)根!") ;else sprintf(str,"方程的解為:%f, %f", root0, root1);InvalidateRect(hwnd, NULL, TRUE);case WM_PAINT:hdc = BeginPaint(hwnd, &ps);strcpy(strHint, "請(qǐng)輸入一元二次方程的3個(gè)系數(shù),中間用逗號(hào)分隔"); TextOut(hdc, 10, 40, strHint, strlen(strHint);TextOut(hdc, 10, 90, str, strlen(str);EndPaint(
27、hwnd, &ps);return 0 ; case WM_DESTROY:/ 當(dāng)窗口關(guān)閉時(shí)產(chǎn)生的消息PostQuitMessage (0) ;return 0 ;return DefWindowProc (hwnd, message, wParam, lParam) ;/ 執(zhí)行默認(rèn)的消息處理3運(yùn)行并測(cè)試編譯并運(yùn)行程序,在編輯框中填入一元二次方程的系數(shù)6、3、-9后,單擊“計(jì)算”按鈕,求解的結(jié)果就會(huì)顯示出來(lái),如圖1.1所示。圖1.1 Ex_SDK運(yùn)行結(jié)果4寫(xiě)出實(shí)驗(yàn)報(bào)告結(jié)合思考與練習(xí)題,寫(xiě)出實(shí)驗(yàn)報(bào)告。思考與練習(xí)(1)分析上述給出的參考代碼,比較和書(shū)中Ex_WinControl示例代碼有何
28、不同?(2)構(gòu)造一個(gè)編輯框和一個(gè)按鈕,當(dāng)單擊按鈕,用消息對(duì)話框?qū)⒕庉嬁騼?nèi)容顯示出來(lái)。實(shí)驗(yàn)2 常用控件(1)實(shí)驗(yàn)?zāi)康暮鸵螅?)創(chuàng)建一個(gè)默認(rèn)的對(duì)話框應(yīng)用程序Ex_Ctrls,如圖2.1所示。(2)設(shè)計(jì)一個(gè)如圖2.2所示的“課程信息”對(duì)話框。圖2.1 Ex_Ctrls對(duì)話框圖2.2 “課程信息”對(duì)話框(3)實(shí)現(xiàn)功能:?jiǎn)螕魣D2.1中的“課程信息”按鈕,彈出“學(xué)生基本信息”對(duì)話框,單擊“添加”按鈕,對(duì)話框內(nèi)容顯示在圖2.1中的列表框中。實(shí)驗(yàn)準(zhǔn)備和說(shuō)明(1)具備知識(shí):靜態(tài)控件、按鈕、編輯框、旋轉(zhuǎn)按鈕控件、列表框和組合框控件。(2)創(chuàng)建本次實(shí)驗(yàn)工作文件夾“Visual C+程序?qū)嶒?yàn)實(shí)驗(yàn)2”。實(shí)驗(yàn)內(nèi)容和步驟
29、1啟動(dòng)Visual C+ 6.0打開(kāi)計(jì)算機(jī),啟動(dòng)Visual C+ 6.0系統(tǒng)。2創(chuàng)建一個(gè)默認(rèn)的對(duì)話框應(yīng)用程序Ex_Ctrls 選擇“文件”“新建”菜單,在彈出的“新建”對(duì)話框中選擇“工程”頁(yè)面,選擇MFC AppWizard(exe),在工程框中輸入Ex_Ctrls,并將工程文件夾定位到“Visual C+程序?qū)嶒?yàn)實(shí)驗(yàn)2”。 單擊“確定”按鈕,在出現(xiàn)的Step 1對(duì)話框中選擇“基本對(duì)話(框)”應(yīng)用程序類型,單擊“完成”按鈕。 在對(duì)話框編輯器中,單擊對(duì)話框工具欄上的切換網(wǎng)格按鈕,顯示對(duì)話框網(wǎng)格,將對(duì)話框標(biāo)題改為“使用控件”。 調(diào)整對(duì)話框的大小,刪除對(duì)話框中間的“TODO: 在這里設(shè)置對(duì)話控制。
30、”靜態(tài)文本控件和“確定”按鈕控件,將“取消”按鈕標(biāo)題改為“退出”,并移至對(duì)話框的下方。 向?qū)υ捒蛑刑砑咏M框(Group)控件,標(biāo)題設(shè)為“添加”,然后調(diào)整其大小和位置。 添加一個(gè)按鈕,標(biāo)題設(shè)為“課程信息”,ID設(shè)為IDC_BUTTON_COURSE。 添加一個(gè)列表框,取其默認(rèn)ID號(hào),去掉Sort風(fēng)格屬性。3添加并設(shè)計(jì)“課程信息”對(duì)話框 按Ctrl+R快捷鍵,彈出“插入資源”對(duì)話框,在資源類型列表中選擇Dialog,單擊“新建”按鈕。 將該對(duì)話框資源的ID設(shè)為IDD_COURSE,標(biāo)題設(shè)為“課程信息”,字體設(shè)為“宋體,9號(hào)”。 將OK和Cancel按鈕的標(biāo)題改為“添加”和“取消”。 打開(kāi)對(duì)話框網(wǎng)格
31、,參看圖2.2的控件布局,為對(duì)話框添加如表2.1所示的一些控件。表2.1 課程信息對(duì)話框添加的控件添加的控件ID號(hào)標(biāo) 題其 他 屬 性編輯框(課程號(hào))IDC_EDIT_COURSENO默認(rèn)編輯框(課程名稱)IDC_EDIT_COURSENAME默認(rèn)組合框(所屬專業(yè))IDC_COMBO_SPECIAL默認(rèn)組合框(課程類型)IDC_COMBO_TYPE默認(rèn)編輯框(開(kāi)課學(xué)期)IDC_EDIT_OPEN默認(rèn)旋轉(zhuǎn)按鈕IDC_SPIN1Auto buddy、Set buddy integer、Right對(duì)齊,其余默認(rèn)編輯框(課時(shí)數(shù))IDC_EDIT_COURSEHOURS默認(rèn)編輯框(學(xué)分)IDC_EDIT
32、_CREDIT默認(rèn) 右擊添加的課程類型的組合框控件,從彈出的快捷菜單中選擇“屬性”命令,將其屬性對(duì)話框切換到Data頁(yè)面,直接輸入內(nèi)容,輸入一行后按Ctrl+Return鍵添加另一行。結(jié)果如圖2.3所示。圖2.3 課程類型組合框內(nèi)容輸入 按Ctrl+W快捷鍵或雙擊對(duì)話框資源模板的空白處,為IDD_COURSE創(chuàng)建一個(gè)對(duì)話框CCourseDlg。 打開(kāi)ClassWizard的Member Variables頁(yè)面,看Class name是否是CCourseDlg,選中所需的控件ID號(hào),雙擊鼠標(biāo)。依次為表2.2控件增加成員變量。表2.2 控件變量控件ID號(hào)變量類別變量類型變量名范圍和大小IDC_ED
33、IT_COURSENOValueCStringm_strNOIDC_EDIT_COURSENAMEValueCStringm_strNameIDC_COMBO_SPECIALValueCStringm_strSpecialIDC_COMBO_SPECIALControlCComboBoxm_comboSpecialIDC_COMBO_TYPEValueCStringm_strTypeIDC_EDIT_OPENValueBYTEm_nOpenIDC_SPIN1ControlCSpinButtonCtrlm_spinOpenIDC_EDIT_COURSEHOURSValueintm_nHoursI
34、DC_EDIT_CREDITValuefloatm_fCredit4添加CCourseDlg類代碼 用MFC ClassWizard為CCourseDlg類添加WM_INITDIALOG消息映射,并添加下列初始化代碼:BOOL CCourseDlg:OnInitDialog() CDialog:OnInitDialog();m_spinOpen.SetRange( 1, 8 );m_nHours = 60;m_fCredit = 2.0;m_nOpen = 1;m_strType = "專修"/ 這里對(duì)專業(yè)組合框進(jìn)行初如化m_comboSpecial.AddString(
35、"機(jī)械工程及其自動(dòng)化" );m_comboSpecial.AddString( "電氣工程及其自動(dòng)化" );m_strSpecial = "機(jī)械工程及其自動(dòng)化"UpdateData(FALSE);return TRUE; / return TRUE unless you set the focus to a control 用MFC ClassWizard為按鈕IDOK添加BN_CLICKED的消息映射,并增加下列 代碼:void CCourseDlg:OnOK() UpdateData();m_strNO.TrimLeft();if
36、 (m_strNO.IsEmpty()MessageBox("課程號(hào)不能為空!");return;m_strName.TrimLeft();if (m_strName.IsEmpty()MessageBox("課程名稱不能為空!");return;CDialog:OnOK();5添加CEx_CtrlsDlg程序代碼 按Ctrl+W快捷鍵,打開(kāi)MFC ClassWizard對(duì)話框,為列表框控件IDC_LIST1添加控件變量m_List,類型為CListBox。 用MFC ClassWizard為按鈕IDC_BUTTON_COURSE添加BN_CLICKED
37、消息映射,并添加下列代碼:void CEx_CtrlsDlg:OnButtonCourse() CCourseDlg dlg;if (IDOK != dlg.DoModal() return;/ 清除列表框原來(lái)的顯示內(nèi)容while(m_List.GetCount()!=0) m_List.DeleteString(0);m_List.AddString( "課 程 號(hào):"+dlg.m_strNO);m_List.AddString( "課程名稱:"+dlg.m_strName);m_List.AddString( "所屬專業(yè):"+dl
38、g.m_strSpecial);m_List.AddString( "課程類型:"+dlg.m_strType);CString str;str.Format("開(kāi)課學(xué)期:%d", dlg.m_nOpen );m_List.AddString( str );str.Format("課 時(shí) 數(shù):%d", dlg.m_nHours );m_List.AddString( str );str.Format("學(xué) 分:%4.1f", dlg.m_fCredit);m_List.AddString( str ); 在Ex_C
39、trlsDlg.cpp文件的前面添加CInputDlg的頭文件包含:#include "Ex_CtrlsDlg.h"#include "CourseDlg.h" 編譯運(yùn)行并測(cè)試。6寫(xiě)出實(shí)驗(yàn)報(bào)告分析上述運(yùn)行結(jié)果以及思考與練習(xí),寫(xiě)出實(shí)驗(yàn)報(bào)告。思考與練習(xí)(1)為CCourseDlg類添加一個(gè)公有型CString成員變量m_strOKText,當(dāng)通過(guò)CCourseDlg類對(duì)象將m_strOKText設(shè)為“修改”,CCourseDlg對(duì)話框中的“添加”按鈕標(biāo)題變成“修改”,試編程實(shí)現(xiàn)。(2)由于每學(xué)期的一門(mén)課程學(xué)分一般不超過(guò)6個(gè)學(xué)分,因此若將學(xué)分編輯框改為組合框,
40、應(yīng)如何修改和編程?實(shí)驗(yàn)3 常用控件(2)實(shí)驗(yàn)?zāi)康暮鸵螅?)設(shè)計(jì)一個(gè)如圖3.1所示的“學(xué)生基本信息”對(duì)話框。(2)在實(shí)驗(yàn)2的基礎(chǔ)上,實(shí)現(xiàn)功能:在圖2.1中的“課程信息”按鈕下方添加一個(gè)“學(xué)生基本信息”按鈕,單擊該按鈕,彈出“學(xué)生基本信息”對(duì)話框,單擊“添加”按鈕,學(xué)生基本信息顯示在列表框中。(3)在CEx_CtrlsDlg對(duì)話框中添加一個(gè)滾動(dòng)條和兩個(gè)滑動(dòng)條來(lái)調(diào)整對(duì)話框的背景顏色的3個(gè)分量:R(紅色分量)、G(綠色分量)和B(藍(lán)色分量),結(jié)果如圖3.2所示。 圖3.1 “學(xué)生基本信息”對(duì)話框圖3.2 設(shè)置對(duì)話框背景顏色實(shí)驗(yàn)準(zhǔn)備和說(shuō)明(1)具備知識(shí):滾動(dòng)條、進(jìn)展條、滑動(dòng)條、時(shí)間和日歷控件。(2)創(chuàng)
41、建本次實(shí)驗(yàn)工作文件夾“Visual C+程序?qū)嶒?yàn)實(shí)驗(yàn)3”。實(shí)驗(yàn)內(nèi)容和步驟1在實(shí)驗(yàn)3的工作文件夾中復(fù)制Ex_Ctrls文件夾將本書(shū)實(shí)驗(yàn)2中的Ex_Ctrls文件夾復(fù)制到實(shí)驗(yàn)3的工作文件夾中。2啟動(dòng)Visual C+ 6.0啟動(dòng)Visual C+ 6.0系統(tǒng)。3創(chuàng)建并添加“學(xué)生基本信息”對(duì)話框 選擇“文件”“打開(kāi)工作區(qū)”菜單,將“Visual C+程序?qū)嶒?yàn)實(shí)驗(yàn)3Ex_Ctrls”文件夾中的Ex_Ctrls項(xiàng)目打開(kāi)。 添加一個(gè)新的對(duì)話框資源,將ID號(hào)改為IDD_INPUT,標(biāo)題為“學(xué)生成績(jī)輸入”,將對(duì)話框字體改為“宋體,9號(hào)”。將OK和Cancel按鈕標(biāo)題改為“確定”和“取消”。 調(diào)整對(duì)話框的大小,
42、將“確定”和“取消”按鈕移至對(duì)話框的下方,然后顯示對(duì)話框網(wǎng)格。 參看圖3.1,向?qū)υ捒蛱砑尤绫?.1所示的控件。表3.1 學(xué)生基本信息對(duì)話框添加的控件添加的控件ID號(hào)標(biāo) 題其 他 屬 性編輯框IDC_EDIT_NAME默認(rèn)編輯框IDC_EDIT_NO默認(rèn)編輯框IDC_EDIT_S1默認(rèn)旋轉(zhuǎn)按鈕控件IDC_SPIN_S1Auto buddy、Right對(duì)齊編輯框IDC_EDIT_S2默認(rèn)旋轉(zhuǎn)按鈕控件IDC_SPIN_S2Auto buddy、Set buddy integer、Right對(duì)齊編輯框IDC_EDIT_S3默認(rèn)旋轉(zhuǎn)按鈕控件IDC_SPIN_S3Auto bud0dy、Set budd
43、y integer、Right對(duì)齊 雙擊對(duì)話框模板空白處,為該對(duì)話框模板創(chuàng)建一個(gè)對(duì)話框類CInputDlg。 在MFC ClassWizard的Member Variables頁(yè)面中,確定Class name中是否已選擇了CInputDlg,選中所需的控件ID號(hào),雙擊鼠標(biāo)或單擊Add Variables按鈕。依次為表3.2控件增加成員變量。表3.2 控件變量控件ID號(hào)變 量 類 別變 量 類 型變 量 名范圍和大小IDC_EDIT_NAMEValueCStringm_strName20IDC_EDIT_NOValueCStringm_strNO20IDC_EDIT_S1Valuefloatm_
44、fScore10.0 100.0IDC_SPIN_S1ControlCSpinButtonCtrlm_spinScore1IDC_EDIT_S2Valuefloatm_fScore20.0 100.0IDC_SPIN_S2ControlCSpinButtonCtrlm_spinScore2IDC_EDIT_S3Valuefloatm_fScore30.0 100.0IDC_SPIN_S3ControlCSpinButtonCtrlm_spinScore3 在MFC ClassWizard的Messsage Maps頁(yè)面中,為CInputDlg添加WM_INITDIALOG消息映射,并添加下列代
45、碼:BOOL CInputDlg:OnInitDialog() CDialog:OnInitDialog();m_spinScore1.SetRange( 0, 100 );/ 設(shè)置旋轉(zhuǎn)按鈕控件范圍m_spinScore2.SetRange( 0, 100 );m_spinScore3.SetRange( 0, 100 );return TRUE; / return TRUE unless you set the focus to a control 用MFC ClassWizard為CInputDlg增加IDC_SPIN_S1控件的UDN_DELTAPOS消息映射,并添加下列代碼:void
46、CInputDlg:OnDeltaposSpinS1(NMHDR* pNMHDR, LRESULT* pResult) NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;UpdateData(TRUE);/ 將控件的內(nèi)容保存到變量中m_fScore1 += (float)pNMUpDown->iDelta * 0.5f;if (m_fScore1<0.0) m_fScore1 = 0.0f;if (m_fScore1>100.0) m_fScore1 = 100.0f;UpdateData(FALSE);/ 將變量的內(nèi)容顯示在控件中*pRes
47、ult = 0; 打開(kāi)IDD_EX_CTRLS_DIALOG對(duì)話框資源,在 “課程信息”按鈕下方添加一個(gè)“學(xué)生基本信息”按鈕,并將ID號(hào)設(shè)為IDC_BUTTON_STUINFO。 用MFC ClassWizard為按鈕IDC_BUTTON_STUINFO添加BN_CLICKED消息映射,并添加下列代碼:void CEx_CtrlsDlg:OnButtonStuinfo() CStuInfoDlg dlg;if (IDOK != dlg.DoModal() return;while(m_List.GetCount()!=0)m_List.DeleteString(0);CString strSe
48、x("女");if (dlg.m_bMale) strSex = "男"m_List.AddString( "姓名:"+dlg.m_strName);m_List.AddString( "學(xué)號(hào):"+dlg.m_strNo);m_List.AddString( "性別:"+strSex);m_List.AddString( "出生年月:"+dlg.m_tBirth.Format("%Y-%m-%d");m_List.AddString( "所學(xué)專業(yè)
49、:"+dlg.m_strSpecial); 在Ex_CtrlsDlg.cpp文件的前面添加CStuInfoDlg類的頭文件包含:#include "CourseDlg.h"#include "StuInfoDlg.h" 編譯運(yùn)行并測(cè)試。結(jié)果如圖3.3所示。圖3.3 學(xué)生基本信息添加后的結(jié)果4改變對(duì)話框背景顏色 將項(xiàng)目工作區(qū)窗口切換到ResourceView頁(yè)面,打開(kāi)IDD_EX_CTRLS_DIALOG對(duì)話框資源。 打開(kāi)對(duì)話框網(wǎng)格,參看圖3.2的控件布局,為對(duì)話框添加如表3.3所示的一些控件。表3.3 添加的控件添加的控件ID號(hào)標(biāo) 題其 他 屬
50、 性垂直滾動(dòng)條IDC_SCROLLBAR_RED默認(rèn)滑動(dòng)條(綠色)IDC_SLIDER_GREEN方位為Vertical, 其他默認(rèn)滑動(dòng)條(藍(lán)色)IDC_SLIDER_BLUE方位為Vertical, 其他默認(rèn) 用MFC ClassWizard為表3.4控件添加成員變量。表3.4 控件變量控件ID號(hào)變 量 類 別變 量 類 型變 量 名范圍和大小IDC_SCROLLBAR_REDControlCScrollBarm_scrollRedIDC_SLIDER_GREENControlCSliderCtrlm_sliderGreenIDC_SLIDER_GREENValueintm_nBlueIDC
51、_SLIDER_BLUEControlCSliderCtrlm_sliderBlueIDC_SLIDER_BLUEValueintm_nBlue 為CEx_CtrlsDlg類添加兩個(gè)成員變量,一個(gè)是int型m_nRed,用來(lái)設(shè)置顏色R、G、B中的紅色分量,另一個(gè)是畫(huà)刷CBrush類對(duì)象m_Brush,用來(lái)設(shè)置對(duì)話框背景所需要的畫(huà)刷。 在CEx_CtrlsDlg:OnInitDialog函數(shù)中添加下列代碼:BOOL CEx_CtrlsDlg:OnInitDialog() m_scrollRed.SetScrollRange(0, 255);m_sliderBlue.SetRange(0, 255
52、);m_sliderGreen.SetRange(0, 255);m_nBlue = m_nGreen = m_nRed = 192;UpdateData( FALSE );m_scrollRed.SetScrollPos(m_nRed);return TRUE; / return TRUE unless you set the focus to a control 用MFC ClassWizard為CEx_CtrlsDlg類映射WM_VSCROLL消息,并添加下列 代碼:void CEx_CtrlsDlg:OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) int nID = pScrollBar->GetDlgCtrl
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 夫妻共同財(cái)產(chǎn)分割與子女撫養(yǎng)權(quán)協(xié)議示范
- 農(nóng)業(yè)項(xiàng)目物資采購(gòu)合同簽訂流程及要求
- 高端財(cái)務(wù)總監(jiān)選拔及職業(yè)發(fā)展支持合同
- 代理記賬服務(wù)與客戶財(cái)務(wù)數(shù)據(jù)安全合同
- 車輛轉(zhuǎn)讓與改裝升級(jí)及售后服務(wù)協(xié)議書(shū)
- 無(wú)子女離婚協(xié)議:財(cái)產(chǎn)分割與子女未來(lái)職業(yè)規(guī)劃書(shū)
- 氨法脫硫培訓(xùn)
- 健康輕食外賣配送服務(wù)企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力項(xiàng)目商業(yè)計(jì)劃書(shū)
- 古石刻保護(hù)在線平臺(tái)行業(yè)深度調(diào)研及發(fā)展項(xiàng)目商業(yè)計(jì)劃書(shū)
- 甘草提取物肝臟保護(hù)片企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力項(xiàng)目商業(yè)計(jì)劃書(shū)
- 黔南人才引進(jìn)試題及答案
- 酒店禁煙控制管理制度
- 加班飯管理制度
- 2025年中國(guó)自動(dòng)鍋蓋行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 江蘇省海安縣財(cái)政局會(huì)計(jì)服務(wù)中心事業(yè)單位招聘招考27人題庫(kù)及完整答案【網(wǎng)校專用】
- 新人教版數(shù)學(xué)五年級(jí)下冊(cè)第二單元《因數(shù)和倍數(shù)》教材解讀
- 2024年中國(guó)心力衰竭診斷與治療指南更新要點(diǎn)解讀
- 系統(tǒng)壓力測(cè)試評(píng)估執(zhí)行規(guī)范
- 北師大版五年級(jí)下冊(cè)數(shù)學(xué)計(jì)算題每日一練帶答案(共30天)
- 河南省建筑安全員《A證》考試題庫(kù)
- 病理科生物安全培訓(xùn)
評(píng)論
0/150
提交評(píng)論