freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于gdi的基本位圖繪制軟件設(shè)計實現(xiàn)論文-文庫吧資料

2024-11-15 22:02本頁面
  

【正文】 方式HBITMAP m_hDrawingSurface。 //所畫圖形的大小int m_nPenWidth。 //繪圖函數(shù)CRect m_rDrawingSurface。 程序前臺界面的實現(xiàn)對話框類的實現(xiàn):class CDrawing2BitmapDlg : public CDialoge {public:CDrawing2BitmapDlg(CWnd* pParent = NULL)。此外還可以在工具欄中設(shè)定繪圖方式包括設(shè)置線條粗細、設(shè)置填充方式、設(shè)置圖形顏色。在Draw欄中可以選擇所需要畫的圖元包括鋼筆、直線、曲線、矩形、橢圓、橡皮擦。 程序操作流程圖: 程序操作流程圖 : 4. 繪圖軟件實現(xiàn) 圖形用戶界面通過使用MFC中的用戶自定義控件(UI)其中,在菜單選項中用戶可以選擇程序所提供的所有功能:在File欄中可以保存文件、退出程序。每種特定的圖元類通過繼承CPath實現(xiàn)各自的Draw()方法。在面向?qū)ο蟮南到y(tǒng)中,多態(tài)性是一個非常重要的概念,它允許客戶對一個對象進行操作,由對象來完成一系列的動作,具體實現(xiàn)哪個動作、如何實現(xiàn)由系統(tǒng)負責解釋。同一操作作用于不同的對象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果,這就是多態(tài)性。當然,如果它們都繼承自某個類,則可以把這些派生類都放到一個數(shù)組中。在運行時,可以通過指向基類的指針,來調(diào)用實現(xiàn)派生類中的方法。它的所有子類都必須重寫這個方法以實現(xiàn)不同圖形的繪制。CPath是所有圖形的基類,包含顏色和圖元狀態(tài)兩個屬性。并且通過繼承這個類Drawing2BitmapDlg對象可以實現(xiàn)Windows程序中的消息機制,接受并處理操作系統(tǒng)給程序?qū)υ捒虬l(fā)送的消息。也可以選擇退出終止整個程序的運行。編輯的動作包含了任何一種使用前面所給繪圖工具所畫的圖形的畫圖動作,以及使用橡皮擦的擦除動作。 橡皮擦若使用者選擇了橡皮擦,當鼠移至畫板上時,鼠標圖標會變成橡皮樣式,橡皮是一個2*2的一塊小矩形區(qū)域,當使用者點擊或者在畫板上拖動鼠標時會將所經(jīng)過的路徑的顏色變成畫板的背景顏色。若使用者選擇圓或者矩形這類封閉樣式畫圖時,由于他們被認為是一塊填充區(qū)域,在繪制的時候GDI會使用當前設(shè)備內(nèi)容中的畫筆對象畫圖形的邊界線,此外還會用設(shè)備內(nèi)容中的畫刷對象填充圖形的內(nèi)部區(qū)域。其中粗細分三個等級分別是1個像素、2個像素、3個像素。 畫圓的流程圖 選擇繪圖樣式所謂繪圖樣式是指線條的粗細、顏色、封閉圖形的填充方式、填充顏色等。: 繪制封閉圖形在本軟件中橢圓和矩形被作為封閉圖形,在本程序中他們的畫法是相同的,但在GDI中對這類封閉圖形的繪制與前面所說的線條類圖元有很大的區(qū)別。第三步:在完成以上兩步后,用鼠標點擊畫板上任意位置,以此時鼠標所在的坐標作為曲線的第二個控制點。第二步:鼠標點擊畫板上任意位置,以此時鼠標所在的坐標作為曲線的第一個控制點。: 繪制曲線若操作者選擇曲線繪圖模式時,程序?qū)慈齻€步驟完成曲線的繪制。 鋼筆繪圖若操作者選擇鋼筆繪圖模式,當鼠標移至畫板上時,鼠標圖標會改變成鋼筆樣式,當使用者按下鼠標時會在畫板上根據(jù)當前繪圖模式按找鼠標的軌跡畫圖,就如同使用鋼筆在紙上畫畫一樣方便。該軟件能夠以類似Windows附件中的繪圖工具的操作方式,用戶在繪圖時能夠?qū)崿F(xiàn)撤銷和重做,最后能將當前畫板上的所有的圖形以BMP文件格式保存在用戶所選的任意文件路徑下。在繪制直線、曲線或鋼筆繪圖時可以改變線條的粗細,在繪制橢圓、矩形這類封閉圖形是可以改變不同的圖形填充方式。為了繪圖的方便,需要設(shè)置一個鋼筆工具,使用戶能直接在畫板上用鼠標繪制任意圖形。3. 繪圖軟件設(shè)計 繪圖軟件功能模塊作為一個小型繪圖系統(tǒng)應(yīng)該能完成繪圖的一些基本功能,如繪制直線、矩形、橢圓、Bezier曲線。從Windows ,GDI開始支持TrueType字體,該字體是在填入輪廓線基礎(chǔ)上建立的,這樣的填入輪廓線可由其它GDI函數(shù)處理。文字不僅是所有的計算機圖形系統(tǒng)中最復雜的部分,也是其中最重要的部分。位圖還可以用于顯示必須快速繪制的小圖像(諸如圖標、鼠標光標以及在應(yīng)用工具條中出現(xiàn)的按鈕等)。位圖是一系列位的矩形數(shù)組,這些位對應(yīng)于顯示設(shè)備上的圖素,它們是位映像圖形的基礎(chǔ)工具。填入?yún)^(qū)域,當一系列直線或者曲線封閉了一個區(qū)域時,該區(qū)域可以使用目前GDI畫刷對象進行填圖。GDI支持直線、矩形、橢圓(包括橢圓的子集,也就是“圓”)、橢圓圓周上的部分曲線即所謂的“弧”,以及貝塞爾曲線(Bezier spline),本文程序中將實現(xiàn)這些基本圖形的繪制。正如C有時被認為是一種“高級匯編語言”一樣,您可以認為GDI是圖形設(shè)備硬件之間的一種高階界面。從這方面來看,Windows GDI和傳統(tǒng)的圖形接口語言之間的關(guān)系,就如同C和其它程序設(shè)計語言之間的關(guān)系一樣。輸出設(shè)備用圖素表示圖形,但是程序與程序接口之間并不是用圖素進行溝通的。向量設(shè)備使用線來繪制圖像,通常局限于繪圖機。圖形輸出設(shè)備分為兩大類:位映像設(shè)備和向量設(shè)備。因為PC兼容機種上可以連接許多種不同的視訊設(shè)備,所以,GDI的主要目的之一是支持與設(shè)備無關(guān)的圖形。視訊驅(qū)動程序存取視訊顯示器的硬件,打印機驅(qū)動程序?qū)DI命令轉(zhuǎn)換為各種打印機能夠理解的代碼或者命令。在Windows NT中,[5]。 位圖的頭文件組成部分位圖文件的組成結(jié)構(gòu)名稱符號位圖文件頭(bitmapfile header)BITMAPFILEHEADERbmfh位圖信息頭(bitmapinformation header)BITMAPINFOHEADERbmih彩色表(color table)RGBQUADaColors[]圖象數(shù)據(jù)陣列字節(jié)BYTEaBitmapBits[] GDI簡介 GDI原理Windows 98和Microsoft Windows 。BMP位圖文件默認的文件擴展名是BMP或者bmp()。Windows ,因此把這種BMP圖像文件格式稱為設(shè)備相關(guān)位圖DDB(devicedependent bitmap)文件格式。BMP(BitmapFile)圖形文件是Windows采用的圖形文件格式,在Windows環(huán)境下運行的所有圖像處理軟件都支持BMP圖像文件格式。縮小位圖尺寸也會使原圖變形,因為此舉是通過減少像素來使整個圖像變小的。然而,如果從稍遠的位置觀看它,位圖圖像的顏色和形狀又顯得是連續(xù)的。當放大位圖時,可以看見賴以構(gòu)成整個圖像的無數(shù)單個方塊。 圖像格式——BMP格式位圖圖像,亦稱為點陣圖像或繪制圖像,是由稱作像素(圖片元素)的單個點組成的。這里所說的同步有序的方式處理消息,意思是說首先消息與硬件的中斷不同。從窗口消息處理程序的角度來看,這些消息是以一種有序的、同步的方式進出的。例如,用鍵盤或鼠標選擇了一個菜單項時,鍵盤或鼠標消息就是隊列化的,而說明菜單項已選中的WM_COMMAND消息則可能就是非隊列化的。當WinMain呼叫UpdateWindow時,Windows將給窗口消息處理程序發(fā)送WM_PAINT消息。例如,當WinMain呼叫CreateWindow時,Windows將建立窗口并在處理中給窗口消息處理程序發(fā)送一個WM_CREATE消息。非隊列化消息則是其它消息。隊列化消息基本上是使用者輸入的結(jié)果,以擊鍵(如WM_KEYDOWN和WM_KEYUP消息)、擊鍵產(chǎn)生的字符(WM_CHAR)、鼠標移動(WM_MOUSEMOVE)和鼠標按鈕(WM_LBUTTONDOWN)的形式給出。任何情況下,窗口消息處理程序都將獲得窗口所有的消息——包括隊列化的和非隊列化的。非隊列化的消息在Windows呼叫窗口時直接送給窗口消息處理程序。隊列化的消息是由Windows放入程序消息隊列中的。有些消息直接發(fā)送給窗口消息處理程序,不用放入消息隊列中。這個消息隊列用來存放該程序可能建立的各種不同窗口的消息。在窗口大小改變,或者窗口表面需要重畫時,由其它消息通知窗口。這些消息經(jīng)常是告知窗口,使用者正使用鍵盤或者鼠標進行輸入。數(shù)據(jù)是窗口消息處理程序保存的信息和Windows為每個窗口以及系統(tǒng)中那個窗口類別保存的信息。在對象導向的程序設(shè)計中,對象是程序與數(shù)據(jù)的組合。例如,所有Windows程序中的所有按鈕均依據(jù)同一個窗口類別。窗口類別標識了處理窗口消息的窗口消息處理程序。窗口消息處理程序根據(jù)此消息進行處理,然后將控制傳回給Windows。這個窗口消息處理程序是一個函數(shù),既可以在程序中,也可以在動態(tài)鏈接庫中。從這點上將,MFC極大地加快了你的程序開發(fā)速度。MFC中包含了上成千上萬行正確、優(yōu)化和功能強大的Windows代碼。必要時,你也可以直接調(diào)用標準C函數(shù),因為MFC不修改也不隱藏Windows程序的基本結(jié)構(gòu)[4]。因此用MFC編寫的程序要比用C語言編寫的程序小得多。MFC也會得到擴展,添加新的特性、變得更加容易建立應(yīng)用程序[3]。MFC是在整個Windows家族中都是兼容的
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1