




已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
目 錄第一章 VC開發(fā)環(huán)境簡介31.1 熟悉Visual C+實驗環(huán)境31.2 VC+6.0的使用控制臺應(yīng)用41.3 Windows應(yīng)用101.4 編寫簡單的計算程序15第二章 實驗內(nèi)容安排18第三章 實驗要求、評分標準19第四章 實驗內(nèi)容20實驗一 C/C+程序初步20實驗二面向?qū)ο缶幊虒嵺`22實驗三 MFC控件編程實踐24實驗四 文件的操作26實驗五 MFC綜合編程29第一章 VC開發(fā)環(huán)境簡介本章將簡要介紹Visual C+開發(fā)環(huán)境的一些知識,并嘗試實現(xiàn)一個簡單的DOS程序和Windows程序。通過本次實驗,你可以了解用Visual C+開發(fā)C+應(yīng)用程序的過程。 1.1 熟悉Visual C+實驗環(huán)境步驟(1) 啟動Developer Studio,看看初始化界面由哪些部分組成(2) 查看各菜單項,看看都有哪些子菜單和命令(3) 將鼠標放置于各工具條圖標上,系統(tǒng)會自動顯示該圖標代表的命令含義,了解一下都有哪些命令。 (4) 在任意工具條上單擊鼠標右鍵,彈出式菜單上將顯示所有可用的工具條,選擇其中沒有對號()的項,看看有什么效果,再選擇有對號的項,又有什么效果?(5) 將鼠標移動到任意工具條上,將鼠標放到圖標間隙,按下鼠標左鍵不放,移動鼠標到屏幕中間,有什么現(xiàn)象發(fā)生?再將它拖回到原來位置,有什么現(xiàn)象發(fā)生? (6) 將鼠標移動到左邊的工作區(qū)窗口,按下鼠標左鍵不放,移動鼠標到屏幕中間,有什么現(xiàn)象發(fā)生?再將它拖回到原來位置,有什么現(xiàn)象發(fā)生?(7) 將鼠標移動到下邊的輸出窗口,按鼠標右鍵,彈出一個菜單,選擇其中的菜單項Hide,結(jié)果如何?要重新顯示該窗口,選擇菜單View|Output,窗口是不是又顯示出來了? (8) 學(xué)習(xí)使用幫助系統(tǒng)。如果你用的是Visual C+5.0,則在工作區(qū)窗口的InfoView中選擇你感興趣的內(nèi)容,雙擊它,在文檔區(qū)顯示具體的幫助信息。如果你用的是Visual C+6.0,選擇菜單Help|Contents,啟動MSDN聯(lián)機幫助系統(tǒng),學(xué)習(xí)使用該幫助系統(tǒng)。聯(lián)機幫助系統(tǒng)是一個相對獨立的程序,它和Developer Studio是兩個程序,但是它的啟動和停止都受Developer Studio影響。MSDN聯(lián)機幫助系統(tǒng)運行的前提條件是Developer Studio在運行。 (9) 選File|Exit退出Developer Studio。1.2 VC+6.0的使用控制臺應(yīng)用1. 新建一個項目。單擊File,彈出圖1如下:圖1點擊New后彈出如下對話框:圖2在圖2中的Projects標簽下選擇Win32 Console Application,在右邊的Project name輸入框中輸入你的項目名稱(此例中我們把項目名稱取為FirsPro),在中通過點擊可以選擇項目的保存位置。注意要選中單選按鈕,然后點擊下面的,彈出如下對話框:圖3點擊按鈕,再在隨后彈出的對話框中點擊“OK”按鈕就建好了一個新項目了。2. 在項目中添加c+源文件。點擊如圖4中的,展現(xiàn)項目的文件視圖。圖4點擊菜單中的File,在彈出的菜單中點擊New,彈出圖2,在圖2中,選擇File標簽圖5在圖5中選擇c+ Source File,在輸入框中輸入c+源文件的文件名(此例中源文件取名為ComplexNum),注意不要加文件名后綴,點擊后就建好了一個c+源文件。結(jié)果如圖6所示:圖6在圖6中的右側(cè)就可以輸入代碼了。如圖7 :完成代碼的輸入后點擊圖7中右上方中的進行對源代碼的編譯,如果沒有錯誤,就點擊生成可執(zhí)行文件,最后點擊運行該程序。常用編輯命令 雖然許多編輯命令可以通過菜單和工具欄實現(xiàn),但大量的編輯命令都可以通過鍵盤實現(xiàn)。以下命令通常用鍵盤實現(xiàn):* 撤消前一次操作。當(dāng)你進行了一次錯誤的操作時,可以通過敲擊鍵盤上的Ctrl+Z完成;* 重復(fù)前一次操作。通過敲擊Ctrl+Y實現(xiàn)* 剪切一行。用Ctrl+L來刪除一行并將它放到剪切板中* 剪切。將選中的文本刪除并將它放到剪切板中,用Ctrl+X實現(xiàn)* 復(fù)制。將選中的文本復(fù)制到剪切板中,用Ctrl+C實現(xiàn)* 粘貼。將剪切板中的內(nèi)容放到編輯器中文本的當(dāng)前位置處(由光標指示),用Ctrl+V實現(xiàn)1.3 Windows應(yīng)用用AppWizard建立一個MFC Windows應(yīng)用,在窗口中輸出Hello,World!術(shù)語:AppWizard是一個工具,利用該工具,你可以創(chuàng)建一個建立在MFC基礎(chǔ)上的窗口應(yīng)用程序框架,然后在這個框架中加上自己的應(yīng)用邏輯。你可以選擇所創(chuàng)建的應(yīng)用類型,最常用的是多文檔應(yīng)用(就象你用的字編輯器Microsoft Word一樣,可以同時打開多個文檔窗口的應(yīng)用)、單文檔應(yīng)用(類似于Windows提供的notepad,一次只能打開一個文檔)和對話框應(yīng)用(類似于Windows的時鐘程序)。步驟1) 創(chuàng)建一個新項目利用Developer Studio的AppWizard創(chuàng)建一個新的項目,步驟為:(1) 選擇菜單File|New,系統(tǒng)將顯示New對話框(2) 選擇Projects標簽,在顯示的項目類型中選擇MFC AppWizard(exe),(見上圖)(3) 在右邊的Project Name編輯框中輸入項目名稱,如“helloMFC,然后按OK.(4) MFC AppWizard 將分幾步詢問你有關(guān)要建立的新項目的配置。第一個對話框問你是創(chuàng)建哪種類型的應(yīng)用(單文檔、多文檔還是對話框類型),選擇創(chuàng)建單文檔應(yīng)用“Single document,然后按Next按鈕。(5) 翻過后面的五個頁面(按Next),每個頁面可以讓你改變項目的不同選項,這個例子暫時不設(shè)置這些選項。(6) 最后一個MFC AppWizard屏幕告訴你App Wizard為你自動產(chǎn)生的類。單擊Finish鍵,AppWizard顯示一個關(guān)于該項目的摘要,列出這些類和你所選擇的特征。如圖所示:(7) 單擊OK(完成),系統(tǒng)自動產(chǎn)生helloMFC所需要的文件。2) 瀏覽helloMFC項目當(dāng)你用MFC AppWizard創(chuàng)建了helloMFC項目后,這個項目的工作區(qū)窗口將會打開,(如下圖):其中ClassView顯示工作區(qū)中所有項目的類及類的成員;ResourceView顯示項目中包含的資源文件;FileView顯示項目中的各種文件資源。你可以先選擇FileView看一下AppWizard為你創(chuàng)建了哪些文件,然后選擇ClassView看一下定義了哪些類。ClassView中還可以看到一個Globals文件夾,單擊它前面的加號,可以看到,有一個預(yù)定義的全局變量theApp,這是你的Windows應(yīng)用程序類的對象。3) 編譯連接運行按F7或者選擇菜單Build|Build helloMFC.exe或,編譯連接得到可執(zhí)行程序,再按Ctrl+F5、或者選擇Build|Execute helloMFC.exe運行該程序。程序的結(jié)果如下:4) 用MFC處理輸出現(xiàn)在是你來修改程序的時候了。我們希望在程序中間的窗口上顯示一行文字“Hello, World 。如何修改呢?(1) 在工作區(qū)窗口中選擇ClassView標簽,單擊helloMFC classes前面的加號(如果已經(jīng)變成減號則不做此操作)(2) 單擊類CHelloMFCView類前面的加號(3) 雙擊OnDraw()函數(shù),在右邊的文檔將顯示窗口顯示文件helloMFCView的內(nèi)容,并且自動將光標定位到函數(shù)OnDraw()處。(4) 修改OnDraw函數(shù)的定義,在最后一行加一句:pDC-TextOut(50,50,Hello, World);(5) 按Ctrl+s或者選菜單File|Save來保存所作的修改5) 編譯連接并運行重新編譯連接該項目,運行程序,你可以用Ctrl+F5直接運行程序,系統(tǒng)將詢問你是否重新編譯該項目,回答“是(Yes)”,如果有編譯錯誤,仔細檢查你加的一句話,是否有錯。當(dāng)編譯連接通過后,系統(tǒng)會自動運行該程序。結(jié)果與上面有什么不同?經(jīng)過上述修改后,程序可以輸出一行文字“Hello, World。這是你實現(xiàn)的第一個Windows程序!是不是很簡單?!不要擔(dān)心有很多不懂的地方,后面的實驗中你會慢慢理解?,F(xiàn)在你應(yīng)該會覺得:哦,原來Windows程序的開發(fā)這么簡單!1.4 編寫簡單的計算程序輸入圓的半徑,計算圓的周長和面積并輸出。測試數(shù)據(jù)輸入:2輸出:The perimeter of the circle : 12.5664The area of the circle : 12.5664輸入:10輸出:The perimeter of the circle : 62.8318The area of the circle : 314.159步驟1) 創(chuàng)建一個控制臺項目選擇菜單File|New,在Projects標簽下選擇Windows32 Console Application,輸入項目名稱“circle,然后按OK2) 在項目中增加一個文件選擇菜單File|New,在Files標簽下選擇C/C+ Source File,輸入文件名稱“circle,然后按OK3) 在文件中輸入以下內(nèi)容/該程序讓用戶輸入圓的半徑Radius,輸出圓的周長Perimeter和面積Area#include #include const double PI = 3.14159; /定義一個常量PIint main() int radius;double perimeter, area;cout radius;perimeter = 2 * PI * radius; /周長=2Rarea = PI * power(radius, 2); /面積=R2cout The perimeter of the circle : perimeter endl;cout The area of the circle : area endl;return 0;注:power(radius,2)表示求radius的平方,power(x, y)是系統(tǒng)預(yù)定義的函數(shù),該函數(shù)計算x的y次方。該函數(shù)的原型在文件math.h中說明。4) 編譯、連接并運行程序如果你輸入的程序有誤,用下面的方法定位并修改錯誤。直到編譯連接通過。運行程序,測試數(shù)據(jù)。編譯和連接錯誤定位* 開發(fā)環(huán)境下方的輸出窗口(Output)顯示編譯和連接過程中出現(xiàn)的錯誤,錯誤信息包括:錯誤出現(xiàn)的文件名、行號、錯誤代碼。* 如果不懂錯誤消息,將光標移動到該錯誤信息,按F1,就可以顯示該錯誤的幫助信息。* 在output窗口,雙擊錯誤或者選擇該錯誤再按ENTER鍵,系統(tǒng)自動將光標移動到發(fā)生錯誤的源程序行,你然后就可以改正錯誤。* F4鍵可以選擇并定位下一個錯誤思考問題(1) 程序中為什么要將頭文件math.h包含進來?(2) 建立控制臺應(yīng)用程序的通用步驟是怎樣的?第二章 實驗內(nèi)容安排課程名稱:面向?qū)ο骔INDOWS編程技術(shù)課程總學(xué)時: 50 實驗總學(xué)時: 30 面向?qū)I(yè)(層次): 信息與計算科學(xué) 應(yīng)開實驗項目數(shù): 5個 應(yīng)開實驗時間: 第3學(xué)期 實驗類別: 專業(yè) 本門課程實驗?zāi)康呐c要求: 1、掌握面向?qū)ο蟪绦蛟O(shè)計分析方法,并應(yīng)用于編程實踐。2、學(xué)會設(shè)計并調(diào)試WINDOWS應(yīng)用程序,進一步提高開發(fā)能力。 3、掌握WINDOWS應(yīng)用程序設(shè)計的基本方法。本課程實驗項目一覽表序號實驗項目名稱實驗學(xué)時目的與要求實驗要求實驗類型每組人數(shù)備 注1C+應(yīng)用程序初步2了解C+程序設(shè)計方法及VC編程環(huán)境必修驗證12面向?qū)ο缶幊虒嵺`10掌握類歸納與設(shè)計、類的繼承與派生、多態(tài)等原理及在程序設(shè)計中應(yīng)用必修驗證13MFC控件編程實踐12掌握MFC程序設(shè)計方法、MFC控件應(yīng)用(標準控件、公共控件、文檔/視等)必修驗證14文件操作2掌握MFC文件串行化操作方法必修驗證15MFC綜合編程4設(shè)計開發(fā)一個基于MFC的小應(yīng)用程序必修綜合1大綱制定日期:2004/8 大綱執(zhí)筆人:彭永康 大綱審定人:章義來第三章 實驗要求、評分標準1. 實驗前必備做課前預(yù)習(xí),準備好預(yù)習(xí)報告,獨立完成實驗。2. 實驗過程中遵守實驗室的各項規(guī)章制作,不得在實驗過程中玩游戲,從事與本實驗無關(guān)的內(nèi)容。3. 課后認真總結(jié),寫出實驗報告,及時上交教師批閱。4. 不得隨意更改實驗時間,在安排時間不上實驗算曠課處理,整個實驗過程中曠課時間占實驗總學(xué)時40以上時,該同學(xué)的實驗成績作降級處理。5. 實驗報告不上交教師批閱的,該同學(xué)的平時成績將作降級處理。6. 實驗報告上交率不足70以上的,考查課該同學(xué)最終成績不得超過中,不足65不得超過及格,低于65為不及格;考試課則該同學(xué)平時成績不超過12分。第四章 實驗內(nèi)容實驗一 C/C+程序初步目的:1. 了解簡單C+程序的構(gòu)成;2. 掌握cin,cout等流式輸入輸出設(shè)備的用法;3. 了解掌握函數(shù)重載的實現(xiàn)及原理。實驗內(nèi)容:1. 應(yīng)用cin,cout實現(xiàn)“Hello,World!”程序的C+版本。2. 應(yīng)用函數(shù)重載技術(shù)實現(xiàn)對整數(shù)、浮點數(shù)、長整數(shù)求絕對值的C+程序。實驗要求:1. 每位同學(xué)在實驗前認真做好實驗準備,閱讀VC操作的介紹,對操作VC進行編程的步驟及方法先期進行了解;2. 在實驗中出現(xiàn)的錯誤,先自己進行認真的程序檢查,力爭自己找出錯誤并掌握C+中改正錯誤的方法。3. 在實驗結(jié)束后,對實驗的結(jié)果進行整理,并寫出一份實驗報告,及時上交老師。參考程序: include void main() cout”Hello,World!”endl; 思考題:1. n字符與 endl 的作用是否相同,上述程序中的cout”Hello,World!”endl 是否可用下列語名代替? Cout”Hello,World!n”;2. 函數(shù)重載的原則是什么?實驗二面向?qū)ο缶幊虒嵺`實驗?zāi)康模?. 掌握類的抽象與封裝,對象的概念及在VC下定義類的方法。2. 類中成員的繼承與類的派生實現(xiàn)。3. 掌握從現(xiàn)有類派生出新類的方法及VC下的具體操作。4. 了解在派生類、基類的成員的繼承原則。5. 了解基類成員在派生類中的訪問控制方式。6. 了解掌握靜態(tài)多態(tài)與動態(tài)多態(tài)的原理及區(qū)別及程序?qū)崿F(xiàn)方法。7. 了解掌握模板的定義方式及應(yīng)用。8. 掌握重載的原理與實現(xiàn)方法。實驗內(nèi)容本實驗內(nèi)容共分為類的抽象與封裝、類的繼承及派生、重載、模板等四個實驗階段,共10個實驗學(xué)時,可按3、2、2、3學(xué)時分配方案進行分配。1. 設(shè)計實現(xiàn)一類CPerson,擁有姓名、性別、地址、聯(lián)系電話、Email等數(shù)據(jù)成員,擁有帶參數(shù)的構(gòu)造函數(shù)CPerson:CPerson(),實現(xiàn)對上述數(shù)據(jù)成員賦初值;擁有一成員函數(shù)Output,實現(xiàn)將姓名、性別、地址、聯(lián)系電話、Email制表輸出?,F(xiàn)有10個人的信息,編程實現(xiàn)輸入每人的信息,最后將所有人的信息列表輸出。2. 以1題中的CPerson為基類,派生出Teacher、Student兩個類,并在它們中增加專業(yè)字段,并重載CPerson類中的Output方法,實現(xiàn)在輸出1中信息的同時,輸出每個人的專業(yè);在學(xué)生類中再增設(shè)教師ID字段,指出其班主任,最后實現(xiàn)一方法pringClass,按指定的班主任ID打印出該班的學(xué)生名單。3. 設(shè)計實現(xiàn)一個復(fù)數(shù)類,對、-、/四種運算符進行重載,實現(xiàn)對復(fù)數(shù)進行 +、*、/ 四種運算。4. 應(yīng)用模板實現(xiàn)求任意數(shù)值的絕對值的C+函數(shù),并驗證它。思考問題a) 構(gòu)造函數(shù)與析構(gòu)函數(shù)的作用如何? 如何定義它們?b) 什么是靜態(tài)類成員?在類中為什么只能聲明靜態(tài)類成員的名稱,而類中不為靜態(tài)類成員分配空間?c) 父類中具有不同訪問屬性的成員如何被子類繼承?子類中可不可以有跟父類同名的成員函數(shù)?d) 簡述函數(shù)重載的規(guī)則。e) 模板的作用是什么?重載技術(shù)與模板有什么異同?實驗三 MFC控件編程實踐實驗?zāi)康?. 了解MFC應(yīng)用程序的構(gòu)成及向?qū)崿F(xiàn)。2. 掌握MFC中的DOC/VIEW結(jié)構(gòu)類型的應(yīng)用程序的構(gòu)成及不同的類的作用。3. 掌握MFC中鍵盤、鼠標事件處理及編程規(guī)則;掌握菜單、按鈕和工具條的資源編輯及在MFC應(yīng)用程序中創(chuàng)建它們的方法。4. 掌握MFC中基于對話框及標準控件的UI設(shè)計及VC程序?qū)崿F(xiàn),重點掌握靜態(tài)控件、文本框、列表框、組合框、進度條等控件的編程技能。5. 掌握MFC中基于公共控件的UI設(shè)計開發(fā)方法。實驗內(nèi)容 本次實驗項目的實驗內(nèi)容主要是對引導(dǎo)學(xué)生掌握MFC程序設(shè)計過程中涉及的各項內(nèi)容,實驗內(nèi)容可分為doc/view及消息處理,對話框設(shè)、按鈕、文本框及靜態(tài)文本框,列表框與組合框,進度條與時鐘,樹視及列表視控件等五個不同小項目來完成,教師可根據(jù)需要選擇三到四個不同的實驗子項目來完成本次實驗。1. 根據(jù)教材中有關(guān)文本/視的教程,練習(xí)掌握Doc/View應(yīng)用程序的開發(fā)步驟及過程。2. 對話設(shè)計。(設(shè)計實現(xiàn)一個對話框,實現(xiàn)如下功能: 對話上有一文本框(多行顯示模式),三個按鈕(打開、存儲、退出),可實現(xiàn)通過單擊“打開”按鈕,將一文本文件中的文字信息導(dǎo)入文本框中顯示,我們可以對文本框中的文本信息進行編輯,單擊“存儲”后將數(shù)據(jù)存入當(dāng)前目錄下的newData.txt文件中(類型為文本類型)3. 菜單點菜程序設(shè)計。本程序基于對話框開發(fā)設(shè)計,對話上有一組合框(用于顯示菜譜分類),兩列表框,一個列表框顯示當(dāng)前分類下的菜的名稱各價格,在用戶選中(可單選也可多選),單選時雙擊菜名即可實現(xiàn)點菜操作,多選時,在客戶選擇相應(yīng)的菜名后,單擊“點菜”按鈕,即將客戶選中的菜名全部復(fù)制到另一列表框中,同時顯示客戶所選菜的菜金總額。4. 電子時鐘。應(yīng)用MFC中的OnTimer事件設(shè)計實現(xiàn)一電子時鐘,時鐘以HH:MM:SS.nn方式顯示,其中“nn”表示的是百分之一秒計量,同時在本對話框中設(shè)計一進度條,進度條中的進度顯示的是百分之一秒度量的統(tǒng)計數(shù)值,當(dāng)進度條到達99時,表明計時滿1秒。5. 應(yīng)用樹視、列表視實現(xiàn)3中的點菜程序設(shè)計開發(fā)。思考題1. doc/view框架下,如何實現(xiàn)對鍵盤、鼠標事件處理?2. 如何根據(jù)需要定制菜單、工具條、狀態(tài)欄?3. 如何實現(xiàn)文本數(shù)據(jù)的導(dǎo)入與存儲?4. 如何改變文本框中的文字的字型信息?5. 面向?qū)ο蠹夹g(shù)如何應(yīng)用于MFC編程?舉例說明之。實驗四 文件的操作實驗?zāi)康?. 一步掌握建立、編譯、連接與調(diào)試Windows應(yīng)用程序的方法,掌握用MFC中的類CArchive來進行文件串行化操作的方法;2. 學(xué)習(xí)使用VC6.0環(huán)境的基本命令和功能鍵;3. 學(xué)習(xí)使用MFC開發(fā)程序的方法;實驗內(nèi)容 通過鍵盤輸入文字數(shù)據(jù),通過doc/view中的串行化機制實現(xiàn)文本數(shù)據(jù)的自動存取。實驗步驟1、 啟動VC6.0,新建一個單文檔工程,并將該工程取名為TEXT;2、 在資源中增加位圖資源,資源名為:IDB_BITMAP1;3、 在視圖類中增加消息響應(yīng)函數(shù)OnCreate,用該函數(shù)來在視圖窗口中創(chuàng)建光標,同時,在該函數(shù)中得到字體的特征,函數(shù)代碼如下:int CTextView:OnCreate(LPCREATESTRUCT lpCreateStruct) if (CView:OnCreate(lpCreateStruct) = -1)return -1;/ TODO: Add your specialized creation code here/得到系統(tǒng)字體的屬性CClientDC dc(this);TEXTMETRIC tm;dc.GetTextMetrics(&tm);/創(chuàng)建光標bitmap.LoadBitmap(IDB_BITMAP1);CreateCaret(&bitmap);ShowCaret();return 0;4、在CtextView類中添加公有成員變量:CString m_strLine,該變量的作用用于保存鍵盤所輸入的字符,同時添加公用成員變量int m_nWidth和CPoint m_ptOrigin;5、 CtextView類中響應(yīng)鼠標左鍵按下事件OnLButtonDown,該函數(shù)的主要作用確定光標的位置,代碼如下:6、 CtextView類中添加字符響應(yīng)函數(shù)OnChar,在該函數(shù)中把輸入的字符串按格式保存到字符變量m_strLine中,代碼如下:void CTextView:OnLButtonDown(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call defaultSetCaretPos(point);m_strLine.Empty();m_ptOrigin=point;CView:OnLButtonDown(nFlags, point);void CTextView:OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) / TODO: Add your message handler code here and/or call defaultCClientDC dc(this);CFont font;font.CreatePointFont(150,宋體,NULL);CFont *pOldFont=dc.SelectObject(&font);TEXTMETRIC tm;dc.GetTextMetrics(&tm);if(0x0d=nChar)m_strLine.Empty();m_ptOrigin.y+=tm.tmHeight;else if(0x08=nChar)COLORREF clr=dc.SetTextColor(dc.GetBkColor();dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine);m_strLine=m_strLine.Left(m_strLine.GetLength()-1);dc.SetTextColor(clr);elsem_strLine+=nChar;CSize sz=dc.GetTextExtent(m_strLine);CPoint pt;pt.x=m_ptOrigin.x+sz.cx;pt.y=m_ptOrigin.y;SetCaretPos(pt);dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine);dc.SelectObject(pOldFont);CView:OnChar(nChar, nRepCnt, nFlags);7、在CtextDoc中設(shè)立一個布爾型控制變量flag;并在CtextDoc類的構(gòu)造函數(shù)中將該變量初始化為false;8、 入CtextDoc類的串行化函數(shù)Serialize中,開始對輸入的文件進行保存和打開的操作,代碼如下:void CTextDoc:Serialize(CArchive& ar)POSITION pos = GetFirstViewPosition();CTextView* pFirstView =(CTextView*)GetNextView( pos );if (ar.IsStoring()/ TODO: add storing code herearm_strLine;else/ TODO: add loading code herearpFirstView-m_strLine;flag=true;9、 同時在CtextView類的OnDraw函數(shù)中添加如下代碼:void CTextView:OnDraw(CDC* pDC)CTextDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data here/下面是需添加的代碼if(pDoc-flag)CSize sz=pDC-GetTextExtent(m_strLine);CPoint pt;pt.x=m_ptOrigin.x+sz.cx;pt.y=m_ptOrigin.y;SetCaretPos(pt);pDC-TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine);pDoc-flag=false;10、運行所編寫的程序,得出結(jié)果。實驗五 MFC綜合編程實驗?zāi)康?. 通過本次實踐,基本能完成簡單的MFC應(yīng)用軟件設(shè)計。2. 掌握綜合MFC各項知識進行各類MFC應(yīng)用程序設(shè)計開發(fā)的能力。實驗內(nèi)容 本實驗是本課程的最后一項實驗項目,在本次實驗中將綜合訓(xùn)練學(xué)生的綜合編程能力及開發(fā)一般軟件的能力,可在下列題目中選擇一題,自行設(shè)計方案,編程完成之。1. 綜合所學(xué)知識,實現(xiàn)一基于樹視、列表視的酒店點菜系統(tǒng),系統(tǒng)中的菜單分類,菜肴簡介及菜肴其它信息可以考慮存放在文件中,也可選擇存放在數(shù)據(jù)庫中,具體功能有系統(tǒng)初始化功能,完成菜肴信息及分類信息的錄入,點菜功能即客戶點菜功能,日結(jié)算功能即根據(jù)客戶所點的菜肴清單分類統(tǒng)計出當(dāng)日營業(yè)額及清單。2. 平面交互作圖系統(tǒng)。實現(xiàn)通過鼠標拖放進行平面作圖功能,圖元存儲功能及重顯功能。Windows的圖形設(shè)備接口(GDI)簡介MFC的圖形對象。 在MFC類庫中,用CDC類封裝設(shè)備文本對象。 CPaintDC類是從CDC類派生的設(shè)備環(huán)境類。CPaintDC類的對象在OnPaint()函數(shù)中使用。 另外,CClientDC類也是常用的CDC派生類,用于在OnPaint()函數(shù)外訪問設(shè)備環(huán)境。畫筆CPenCPen:CreatePenBOOL CreatePen (int nPenStyle, int nWidth, COLORREF crColor);第1個參數(shù)是畫筆樣式,可取畫筆樣式說明PS_SOLID創(chuàng)建實線筆PS_DASH創(chuàng)建由短線構(gòu)成的虛線PS_DOT創(chuàng)建由點構(gòu)成的虛線PS_DASHDOT創(chuàng)建由短線和點構(gòu)成的虛線PS_DASH_DOTDOT創(chuàng)建由短線、點、點構(gòu)成的虛線PS_NULL創(chuàng)建空(空白)畫筆第2個參數(shù)為線寬 第3個參數(shù)為線的顏色,可使用RGB()函數(shù)指定畫刷CBrush類 BOOL CreateSolidBrush ( COLORREF crColor );參數(shù)crColor指定了畫刷的顏色。BOOL CreateHatchBrush ( int nIndex, COLORREF crColor );其中參數(shù)nIndex指定了陰影風(fēng)格,可取值為:陰影風(fēng)格說明HS_BDIAGONAL 從左下角到右上角的45度斜線HS_CROSS 水平線與垂直線HS_DIAGCROSS 相互垂直的45度線HS_FDIAGONAL 從左上角到右下角的45度斜線HS_HORIZONTAL 水平線HS_VERTICAL 垂直線CDC類CDC:SelectObject()函數(shù)原型如下:CPen* SelectObject( CPen* pPen );CBrush* SelectObject( CBrush* pBrush );virtual CFont* SelectObject( CFont* pFont );繪畫模式 在Windows中,繪圖的最終效果不但取決于畫筆和畫刷的設(shè)置,還可以通過設(shè)定繪圖模式來修正。CDC的成員函數(shù)SetROP2()設(shè)定,其原型為:int SetROP2 ( int nDrawMode );其中參數(shù)nDrawMode為選定的繪圖模式,常用模式有:繪圖模式 說明R2_BLACK 無論畫筆色如何,只用黑色繪圖;R2_WHITE 無論畫筆色如何,只用白色繪圖;R2_NOP無論畫筆色如何,用無色筆繪圖;R2_NOT用與背景色相反的顏色繪圖;R2_NOTCOPYPEN 用與畫筆色相反的顏色繪圖;R2_COPYPEN 用畫筆色繪圖;R2_XORPEN 對畫筆色和背景色作異或(XOR)運算GDI坐標系 GDI支持兩種類型的坐標系邏輯坐標系 與 設(shè)備坐標系 映射模式邏輯單位x遞增方向y遞增方向MM_TEXT像素向右向下MM_LOMETRIC 0.1mm向右 向上MM_HIMETRIC 0.01mm向右向上MM_LOENGLISH 0.01inch向右向上MM_HIENGLISH 0.001inch向右向上MM_TWIPS 1/1440inch 向右向上MM_ISOTROPIC 可調(diào)整 (x = y) 可選擇可選擇MM_ANISOTROPIC 可調(diào)整(x != y) 可選擇可選擇設(shè)置映射模式CDC:SetMapMode(),其原型為virtual int SetMapMode ( int nMapMode );參數(shù)nMapMode為欲設(shè)置的映射模式 返回值為原來的映射模式。參看13.2:“打印和打印預(yù)覽”Windows下使用的設(shè)備坐標系統(tǒng)客戶區(qū)坐標系統(tǒng) 窗口坐標系統(tǒng) 屏幕坐標系統(tǒng)。void ScreenToClient( LPPOINT lpPoint ) const;void ScreenToClient( LPRECT lpRect ) const;void ClientToScreen( LPPOINT lpPoint ) const;void ClientToScreen( LPRECT lpRect ) const;DPtoLP()用于將設(shè)備坐標轉(zhuǎn)換為邏輯坐標void LPtoDP ( LPPOINT lpPoints, int nCount = 1 ) const;void LPtoDP ( LPRECT lpRect ) const;void DPtoLP ( LPPOINT lpPoints, int nCount = 1 ) const;void DPtoLP ( LPRECT lpRect ) const;字體 CFont類成員函數(shù)的原型為:BOOL CreateFont( int nHeight, / 字符邏輯高度int nWidth, / 字體邏輯寬度int nEscapement, / 出口矢量與X軸的角度int nOrientation, / 字符基線與X軸的角度int nWeight, / 字體磅值BYTE bItalic, / 非0則為斜體BYTE bUnderline, / 非0則加下劃線BYTE cStrikeOut, / 非0則加刪除線BYTE nCharSet, / 此字體的字符集BYTE nOutPrecision, / 輸出精度BYTE nClipPrecision, / 裁剪精度BYTE nQuality, / 輸出質(zhì)量BYTE nPitchAndFamily, / 調(diào)距和字體族LPCTSTR lpszFacename )
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文件存儲柜使用表格
- 2025年藝術(shù)與設(shè)計專業(yè)綜合素質(zhì)考試試卷及答案
- 2025年系統(tǒng)分析與設(shè)計能力考試題及答案
- 2025年社會心理學(xué)基礎(chǔ)知測試卷及答案
- 2025年輕工業(yè)制造工藝基礎(chǔ)考試試題及答案
- 2025年建筑技術(shù)與管理專業(yè)考試試題及答案
- 2025年傳統(tǒng)醫(yī)學(xué)與現(xiàn)代科技在健康管理中的應(yīng)用考試試卷及答案
- 物資公司收購管理制度
- 特殊體質(zhì)教育管理制度
- 特殊病人液體管理制度
- JJF1033-2023計量標準考核規(guī)范
- 專題四第1課二、《智能家居系統(tǒng)》說課稿 2023-2024學(xué)年青島版(2018)初中信息技術(shù)八年級上冊
- 江西省贛州市興國三中重點達標名校2025屆中考試題猜想生物試卷含解析
- 2025海南省交通投資控股限公司招聘30人高頻重點提升(共500題)附帶答案詳解
- 湖北瀾圖工程設(shè)計有限公司招聘筆試沖刺題2025
- 《中國文化導(dǎo)論》課程考試復(fù)習(xí)題庫及答案
- 《江蘇省民用建筑工程消防驗收常見問題解析及防治指南》2023版
- DB3701T 29-2022 智慧中藥房建設(shè)與運行規(guī)范
- 2024-2025學(xué)年上學(xué)期廣州六年級英語期末模擬卷1
- 2024新滬教版英語(五四學(xué)制)七年級上單詞表 (英譯漢)
- 金蝶KIS專業(yè)版完整操作手冊
評論
0/150
提交評論