




已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
目 錄第一章 VC開發(fā)環(huán)境簡介31.1 熟悉Visual C+實驗環(huán)境31.2 VC+6.0的使用控制臺應用41.3 Windows應用101.4 編寫簡單的計算程序15第二章 實驗內(nèi)容安排18第三章 實驗要求、評分標準19第四章 實驗內(nèi)容20實驗一 C/C+程序初步20實驗二面向對象編程實踐22實驗三 MFC控件編程實踐24實驗四 文件的操作26實驗五 MFC綜合編程29第一章 VC開發(fā)環(huán)境簡介本章將簡要介紹Visual C+開發(fā)環(huán)境的一些知識,并嘗試實現(xiàn)一個簡單的DOS程序和Windows程序。通過本次實驗,你可以了解用Visual C+開發(fā)C+應用程序的過程。 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,結果如何?要重新顯示該窗口,選擇菜單View|Output,窗口是不是又顯示出來了? (8) 學習使用幫助系統(tǒng)。如果你用的是Visual C+5.0,則在工作區(qū)窗口的InfoView中選擇你感興趣的內(nèi)容,雙擊它,在文檔區(qū)顯示具體的幫助信息。如果你用的是Visual C+6.0,選擇菜單Help|Contents,啟動MSDN聯(lián)機幫助系統(tǒng),學習使用該幫助系統(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的使用控制臺應用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+源文件。結果如圖6所示:圖6在圖6中的右側就可以輸入代碼了。如圖7 :完成代碼的輸入后點擊圖7中右上方中的進行對源代碼的編譯,如果沒有錯誤,就點擊生成可執(zhí)行文件,最后點擊運行該程序。常用編輯命令 雖然許多編輯命令可以通過菜單和工具欄實現(xiàn),但大量的編輯命令都可以通過鍵盤實現(xiàn)。以下命令通常用鍵盤實現(xiàn):* 撤消前一次操作。當你進行了一次錯誤的操作時,可以通過敲擊鍵盤上的Ctrl+Z完成;* 重復前一次操作。通過敲擊Ctrl+Y實現(xiàn)* 剪切一行。用Ctrl+L來刪除一行并將它放到剪切板中* 剪切。將選中的文本刪除并將它放到剪切板中,用Ctrl+X實現(xiàn)* 復制。將選中的文本復制到剪切板中,用Ctrl+C實現(xiàn)* 粘貼。將剪切板中的內(nèi)容放到編輯器中文本的當前位置處(由光標指示),用Ctrl+V實現(xiàn)1.3 Windows應用用AppWizard建立一個MFC Windows應用,在窗口中輸出Hello,World!術語:AppWizard是一個工具,利用該工具,你可以創(chuàng)建一個建立在MFC基礎上的窗口應用程序框架,然后在這個框架中加上自己的應用邏輯。你可以選擇所創(chuàng)建的應用類型,最常用的是多文檔應用(就象你用的字編輯器Microsoft Word一樣,可以同時打開多個文檔窗口的應用)、單文檔應用(類似于Windows提供的notepad,一次只能打開一個文檔)和對話框應用(類似于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 將分幾步詢問你有關要建立的新項目的配置。第一個對話框問你是創(chuàng)建哪種類型的應用(單文檔、多文檔還是對話框類型),選擇創(chuàng)建單文檔應用“Single document,然后按Next按鈕。(5) 翻過后面的五個頁面(按Next),每個頁面可以讓你改變項目的不同選項,這個例子暫時不設置這些選項。(6) 最后一個MFC AppWizard屏幕告訴你App Wizard為你自動產(chǎn)生的類。單擊Finish鍵,AppWizard顯示一個關于該項目的摘要,列出這些類和你所選擇的特征。如圖所示:(7) 單擊OK(完成),系統(tǒng)自動產(chǎn)生helloMFC所需要的文件。2) 瀏覽helloMFC項目當你用MFC AppWizard創(chuàng)建了helloMFC項目后,這個項目的工作區(qū)窗口將會打開,(如下圖):其中ClassView顯示工作區(qū)中所有項目的類及類的成員;ResourceView顯示項目中包含的資源文件;FileView顯示項目中的各種文件資源。你可以先選擇FileView看一下AppWizard為你創(chuàng)建了哪些文件,然后選擇ClassView看一下定義了哪些類。ClassView中還可以看到一個Globals文件夾,單擊它前面的加號,可以看到,有一個預定義的全局變量theApp,這是你的Windows應用程序類的對象。3) 編譯連接運行按F7或者選擇菜單Build|Build helloMFC.exe或,編譯連接得到可執(zhí)行程序,再按Ctrl+F5、或者選擇Build|Execute helloMFC.exe運行該程序。程序的結果如下: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)”,如果有編譯錯誤,仔細檢查你加的一句話,是否有錯。當編譯連接通過后,系統(tǒng)會自動運行該程序。結果與上面有什么不同?經(jīng)過上述修改后,程序可以輸出一行文字“Hello, World。這是你實現(xiàn)的第一個Windows程序!是不是很簡單?!不要擔心有很多不懂的地方,后面的實驗中你會慢慢理解。現(xiàn)在你應該會覺得:哦,原來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)預定義的函數(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) 建立控制臺應用程序的通用步驟是怎樣的?第二章 實驗內(nèi)容安排課程名稱:面向對象WINDOWS編程技術課程總學時: 50 實驗總學時: 30 面向專業(yè)(層次): 信息與計算科學 應開實驗項目數(shù): 5個 應開實驗時間: 第3學期 實驗類別: 專業(yè) 本門課程實驗目的與要求: 1、掌握面向對象程序設計分析方法,并應用于編程實踐。2、學會設計并調(diào)試WINDOWS應用程序,進一步提高開發(fā)能力。 3、掌握WINDOWS應用程序設計的基本方法。本課程實驗項目一覽表序號實驗項目名稱實驗學時目的與要求實驗要求實驗類型每組人數(shù)備 注1C+應用程序初步2了解C+程序設計方法及VC編程環(huán)境必修驗證12面向對象編程實踐10掌握類歸納與設計、類的繼承與派生、多態(tài)等原理及在程序設計中應用必修驗證13MFC控件編程實踐12掌握MFC程序設計方法、MFC控件應用(標準控件、公共控件、文檔/視等)必修驗證14文件操作2掌握MFC文件串行化操作方法必修驗證15MFC綜合編程4設計開發(fā)一個基于MFC的小應用程序必修綜合1大綱制定日期:2004/8 大綱執(zhí)筆人:彭永康 大綱審定人:章義來第三章 實驗要求、評分標準1. 實驗前必備做課前預習,準備好預習報告,獨立完成實驗。2. 實驗過程中遵守實驗室的各項規(guī)章制作,不得在實驗過程中玩游戲,從事與本實驗無關的內(nèi)容。3. 課后認真總結,寫出實驗報告,及時上交教師批閱。4. 不得隨意更改實驗時間,在安排時間不上實驗算曠課處理,整個實驗過程中曠課時間占實驗總學時40以上時,該同學的實驗成績作降級處理。5. 實驗報告不上交教師批閱的,該同學的平時成績將作降級處理。6. 實驗報告上交率不足70以上的,考查課該同學最終成績不得超過中,不足65不得超過及格,低于65為不及格;考試課則該同學平時成績不超過12分。第四章 實驗內(nèi)容實驗一 C/C+程序初步目的:1. 了解簡單C+程序的構成;2. 掌握cin,cout等流式輸入輸出設備的用法;3. 了解掌握函數(shù)重載的實現(xiàn)及原理。實驗內(nèi)容:1. 應用cin,cout實現(xiàn)“Hello,World!”程序的C+版本。2. 應用函數(shù)重載技術實現(xiàn)對整數(shù)、浮點數(shù)、長整數(shù)求絕對值的C+程序。實驗要求:1. 每位同學在實驗前認真做好實驗準備,閱讀VC操作的介紹,對操作VC進行編程的步驟及方法先期進行了解;2. 在實驗中出現(xiàn)的錯誤,先自己進行認真的程序檢查,力爭自己找出錯誤并掌握C+中改正錯誤的方法。3. 在實驗結束后,對實驗的結果進行整理,并寫出一份實驗報告,及時上交老師。參考程序: include void main() cout”Hello,World!”endl; 思考題:1. n字符與 endl 的作用是否相同,上述程序中的cout”Hello,World!”endl 是否可用下列語名代替? Cout”Hello,World!n”;2. 函數(shù)重載的原則是什么?實驗二面向對象編程實踐實驗目的:1. 掌握類的抽象與封裝,對象的概念及在VC下定義類的方法。2. 類中成員的繼承與類的派生實現(xiàn)。3. 掌握從現(xiàn)有類派生出新類的方法及VC下的具體操作。4. 了解在派生類、基類的成員的繼承原則。5. 了解基類成員在派生類中的訪問控制方式。6. 了解掌握靜態(tài)多態(tài)與動態(tài)多態(tài)的原理及區(qū)別及程序實現(xiàn)方法。7. 了解掌握模板的定義方式及應用。8. 掌握重載的原理與實現(xiàn)方法。實驗內(nèi)容本實驗內(nèi)容共分為類的抽象與封裝、類的繼承及派生、重載、模板等四個實驗階段,共10個實驗學時,可按3、2、2、3學時分配方案進行分配。1. 設計實現(xiàn)一類CPerson,擁有姓名、性別、地址、聯(lián)系電話、Email等數(shù)據(jù)成員,擁有帶參數(shù)的構造函數(shù)CPerson:CPerson(),實現(xiàn)對上述數(shù)據(jù)成員賦初值;擁有一成員函數(shù)Output,實現(xiàn)將姓名、性別、地址、聯(lián)系電話、Email制表輸出。現(xiàn)有10個人的信息,編程實現(xiàn)輸入每人的信息,最后將所有人的信息列表輸出。2. 以1題中的CPerson為基類,派生出Teacher、Student兩個類,并在它們中增加專業(yè)字段,并重載CPerson類中的Output方法,實現(xiàn)在輸出1中信息的同時,輸出每個人的專業(yè);在學生類中再增設教師ID字段,指出其班主任,最后實現(xiàn)一方法pringClass,按指定的班主任ID打印出該班的學生名單。3. 設計實現(xiàn)一個復數(shù)類,對、-、/四種運算符進行重載,實現(xiàn)對復數(shù)進行 +、*、/ 四種運算。4. 應用模板實現(xiàn)求任意數(shù)值的絕對值的C+函數(shù),并驗證它。思考問題a) 構造函數(shù)與析構函數(shù)的作用如何? 如何定義它們?b) 什么是靜態(tài)類成員?在類中為什么只能聲明靜態(tài)類成員的名稱,而類中不為靜態(tài)類成員分配空間?c) 父類中具有不同訪問屬性的成員如何被子類繼承?子類中可不可以有跟父類同名的成員函數(shù)?d) 簡述函數(shù)重載的規(guī)則。e) 模板的作用是什么?重載技術與模板有什么異同?實驗三 MFC控件編程實踐實驗目的1. 了解MFC應用程序的構成及向導實現(xiàn)。2. 掌握MFC中的DOC/VIEW結構類型的應用程序的構成及不同的類的作用。3. 掌握MFC中鍵盤、鼠標事件處理及編程規(guī)則;掌握菜單、按鈕和工具條的資源編輯及在MFC應用程序中創(chuàng)建它們的方法。4. 掌握MFC中基于對話框及標準控件的UI設計及VC程序實現(xiàn),重點掌握靜態(tài)控件、文本框、列表框、組合框、進度條等控件的編程技能。5. 掌握MFC中基于公共控件的UI設計開發(fā)方法。實驗內(nèi)容 本次實驗項目的實驗內(nèi)容主要是對引導學生掌握MFC程序設計過程中涉及的各項內(nèi)容,實驗內(nèi)容可分為doc/view及消息處理,對話框設、按鈕、文本框及靜態(tài)文本框,列表框與組合框,進度條與時鐘,樹視及列表視控件等五個不同小項目來完成,教師可根據(jù)需要選擇三到四個不同的實驗子項目來完成本次實驗。1. 根據(jù)教材中有關文本/視的教程,練習掌握Doc/View應用程序的開發(fā)步驟及過程。2. 對話設計。(設計實現(xiàn)一個對話框,實現(xiàn)如下功能: 對話上有一文本框(多行顯示模式),三個按鈕(打開、存儲、退出),可實現(xiàn)通過單擊“打開”按鈕,將一文本文件中的文字信息導入文本框中顯示,我們可以對文本框中的文本信息進行編輯,單擊“存儲”后將數(shù)據(jù)存入當前目錄下的newData.txt文件中(類型為文本類型)3. 菜單點菜程序設計。本程序基于對話框開發(fā)設計,對話上有一組合框(用于顯示菜譜分類),兩列表框,一個列表框顯示當前分類下的菜的名稱各價格,在用戶選中(可單選也可多選),單選時雙擊菜名即可實現(xiàn)點菜操作,多選時,在客戶選擇相應的菜名后,單擊“點菜”按鈕,即將客戶選中的菜名全部復制到另一列表框中,同時顯示客戶所選菜的菜金總額。4. 電子時鐘。應用MFC中的OnTimer事件設計實現(xiàn)一電子時鐘,時鐘以HH:MM:SS.nn方式顯示,其中“nn”表示的是百分之一秒計量,同時在本對話框中設計一進度條,進度條中的進度顯示的是百分之一秒度量的統(tǒng)計數(shù)值,當進度條到達99時,表明計時滿1秒。5. 應用樹視、列表視實現(xiàn)3中的點菜程序設計開發(fā)。思考題1. doc/view框架下,如何實現(xiàn)對鍵盤、鼠標事件處理?2. 如何根據(jù)需要定制菜單、工具條、狀態(tài)欄?3. 如何實現(xiàn)文本數(shù)據(jù)的導入與存儲?4. 如何改變文本框中的文字的字型信息?5. 面向對象技術如何應用于MFC編程?舉例說明之。實驗四 文件的操作實驗目的1. 一步掌握建立、編譯、連接與調(diào)試Windows應用程序的方法,掌握用MFC中的類CArchive來進行文件串行化操作的方法;2. 學習使用VC6.0環(huán)境的基本命令和功能鍵;3. 學習使用MFC開發(fā)程序的方法;實驗內(nèi)容 通過鍵盤輸入文字數(shù)據(jù),通過doc/view中的串行化機制實現(xiàn)文本數(shù)據(jù)的自動存取。實驗步驟1、 啟動VC6.0,新建一個單文檔工程,并將該工程取名為TEXT;2、 在資源中增加位圖資源,資源名為:IDB_BITMAP1;3、 在視圖類中增加消息響應函數(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類中響應鼠標左鍵按下事件OnLButtonDown,該函數(shù)的主要作用確定光標的位置,代碼如下:6、 CtextView類中添加字符響應函數(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中設立一個布爾型控制變量flag;并在CtextDoc類的構造函數(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、運行所編寫的程序,得出結果。實驗五 MFC綜合編程實驗目的1. 通過本次實踐,基本能完成簡單的MFC應用軟件設計。2. 掌握綜合MFC各項知識進行各類MFC應用程序設計開發(fā)的能力。實驗內(nèi)容 本實驗是本課程的最后一項實驗項目,在本次實驗中將綜合訓練學生的綜合編程能力及開發(fā)一般軟件的能力,可在下列題目中選擇一題,自行設計方案,編程完成之。1. 綜合所學知識,實現(xiàn)一基于樹視、列表視的酒店點菜系統(tǒng),系統(tǒng)中的菜單分類,菜肴簡介及菜肴其它信息可以考慮存放在文件中,也可選擇存放在數(shù)據(jù)庫中,具體功能有系統(tǒng)初始化功能,完成菜肴信息及分類信息的錄入,點菜功能即客戶點菜功能,日結算功能即根據(jù)客戶所點的菜肴清單分類統(tǒng)計出當日營業(yè)額及清單。2. 平面交互作圖系統(tǒng)。實現(xiàn)通過鼠標拖放進行平面作圖功能,圖元存儲功能及重顯功能。Windows的圖形設備接口(GDI)簡介MFC的圖形對象。 在MFC類庫中,用CDC類封裝設備文本對象。 CPaintDC類是從CDC類派生的設備環(huán)境類。CPaintDC類的對象在OnPaint()函數(shù)中使用。 另外,CClientDC類也是常用的CDC派生類,用于在OnPaint()函數(shù)外訪問設備環(huán)境。畫筆CPenCPen:CreatePenBOOL CreatePen (int nPenStyle, int nWidth, COLORREF crColor);第1個參數(shù)是畫筆樣式,可取畫筆樣式說明PS_SOLID創(chuàng)建實線筆PS_DASH創(chuàng)建由短線構成的虛線PS_DOT創(chuàng)建由點構成的虛線PS_DASHDOT創(chuàng)建由短線和點構成的虛線PS_DASH_DOTDOT創(chuàng)建由短線、點、點構成的虛線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指定了陰影風格,可取值為:陰影風格說明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中,繪圖的最終效果不但取決于畫筆和畫刷的設置,還可以通過設定繪圖模式來修正。CDC的成員函數(shù)SetROP2()設定,其原型為:int SetROP2 ( int nDrawMode );其中參數(shù)nDrawMode為選定的繪圖模式,常用模式有:繪圖模式 說明R2_BLACK 無論畫筆色如何,只用黑色繪圖;R2_WHITE 無論畫筆色如何,只用白色繪圖;R2_NOP無論畫筆色如何,用無色筆繪圖;R2_NOT用與背景色相反的顏色繪圖;R2_NOTCOPYPEN 用與畫筆色相反的顏色繪圖;R2_COPYPEN 用畫筆色繪圖;R2_XORPEN 對畫筆色和背景色作異或(XOR)運算GDI坐標系 GDI支持兩種類型的坐標系邏輯坐標系 與 設備坐標系 映射模式邏輯單位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) 可選擇可選擇設置映射模式CDC:SetMapMode(),其原型為virtual int SetMapMode ( int nMapMode );參數(shù)nMapMode為欲設置的映射模式 返回值為原來的映射模式。參看13.2:“打印和打印預覽”Windows下使用的設備坐標系統(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()用于將設備坐標轉換為邏輯坐標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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 稀土金屬壓延加工的綠色制造實踐與挑戰(zhàn)考核試卷
- 生理參數(shù)監(jiān)測與疾病預防考核試卷
- 方便食品包裝的可降解材料研究考核試卷
- 流體包裹體對鉻礦成礦作用的指示意義考核試卷
- 安全機器學習與模式識別考核試卷
- 經(jīng)紀人如何進行藝人宣傳推廣與市場營銷策劃考核試卷
- 珠海市高三月質(zhì)量監(jiān)測(二模)理綜生物試題
- 石家莊信息工程職業(yè)學院《Html網(wǎng)頁開發(fā)與設計》2023-2024學年第二學期期末試卷
- 江西管理職業(yè)學院《田間試驗與統(tǒng)計》2023-2024學年第一學期期末試卷
- 南京理工大學紫金學院《互換性與技術測量A》2023-2024學年第二學期期末試卷
- 企業(yè)名稱:個人防護用品(PPE)管理規(guī)定
- 接力版六年級下冊小學英語全冊同步練習(一課一練)
- 小學英語知識點:主要問句
- 10kV電纜帶電保護施工方案
- 工廠預制混凝土構件質(zhì)量管理標準
- 地球歷史及其生命的奧秘智慧樹知到期末考試答案章節(jié)答案2024年蘭州大學
- 土地運作服務合同范本
- 河南省鄭州外國語2024年中考數(shù)學四模真題(含答案)
- 抖音火花合同電子版獲取教程
- 2024年廣東省廣州市海珠區(qū)中考二模英語試卷
- 中考語文二輪專題復習:《記敘文復習之人物形象分析》課件
評論
0/150
提交評論