版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1第5章圖形繪制圖形繪制在VisualC6.0中,掌握?qǐng)D形程序設(shè)計(jì)方法是非常重要的。因?yàn)閳D形在任何一個(gè)可視化工程項(xiàng)目中都是不可缺少的。CDC(設(shè)備環(huán)境)類封裝了圖形繪制所需要的各種操作。本章我們將通過(guò)實(shí)際例子和較詳細(xì)的闡述,來(lái)了解和掌握如何使用設(shè)備環(huán)境類(CDC)及圖形設(shè)備接口(GDI)進(jìn)行圖形繪制。51設(shè)備環(huán)境與設(shè)備環(huán)境類設(shè)備環(huán)境與設(shè)備環(huán)境類(CDC)511設(shè)備環(huán)境設(shè)備環(huán)境設(shè)備環(huán)境也稱設(shè)備上下文(DeviceContext簡(jiǎn)稱DC),
2、是計(jì)算機(jī)物理設(shè)備的代表,也是圖形設(shè)備接口的主要組成部分。由于Windows是一個(gè)與設(shè)備無(wú)關(guān)的操作系統(tǒng),即Windows不允許直接訪問(wèn)硬件,如果用戶想將文本和圖形繪制到顯示器或其它設(shè)備中去,必須通過(guò)“設(shè)備環(huán)境”這個(gè)抽象層與硬件進(jìn)行通信,設(shè)備上下文對(duì)象的作用就是實(shí)現(xiàn)Windows的設(shè)備無(wú)關(guān)性,任何向屏幕上進(jìn)行輸出的功能都要間接地通過(guò)它來(lái)完成。設(shè)備上下文是Windows的一種數(shù)據(jù)結(jié)構(gòu),它包含了有關(guān)如顯示器或打印機(jī)等設(shè)備的繪圖屬性信息。所有繪畫(huà)
3、都是通過(guò)設(shè)備上下文對(duì)象來(lái)實(shí)現(xiàn)的,該對(duì)象封裝了Windows的畫(huà)線、圖形和文本的API函數(shù)。設(shè)備上下文允許在Windows下獨(dú)立于設(shè)備的繪畫(huà)。設(shè)備上下文不僅能夠被用來(lái)在屏幕上繪畫(huà)它也可以將繪畫(huà)輸出到打印機(jī)和圖元文件中。512設(shè)備環(huán)境類設(shè)備環(huán)境類設(shè)備環(huán)境類CDC直接繼承于CObject類,該類定義了一類設(shè)備對(duì)象。CDC對(duì)象提供了非常多的成員函數(shù),與設(shè)備環(huán)境的顯示器、打印機(jī)等一起工作。例如,如果要在顯示器等設(shè)備上繪制圖形,我們可以用MFC提供
4、的設(shè)備環(huán)境類CDC類,因?yàn)镃DC類中包含了繪圖所需要的所有成員函數(shù)。同時(shí)。MFC還提供了以下幾個(gè)CDC的派生類:1、CPaintDC類此類比較特殊,它的構(gòu)造函數(shù)和析構(gòu)函數(shù)都是針對(duì)OnPaint進(jìn)行的。用戶一旦獲得相關(guān)的CDC指針,就可以將它當(dāng)做任何設(shè)備環(huán)境(包括屏幕、打印機(jī))指針來(lái)使用,CPaintDC類的構(gòu)造函數(shù)會(huì)自動(dòng)調(diào)用BeginPaint,而它的析構(gòu)函數(shù)則會(huì)自動(dòng)調(diào)用EndPaint。2、CClientDC和CWindowDC類CC
5、lientDC只能在窗口的客戶區(qū)(不包括邊框、工具條、標(biāo)題欄、滾動(dòng)條、菜單欄以及狀態(tài)欄)進(jìn)行繪圖,點(diǎn)(0,0)通常指的是客戶區(qū)的左上角。其構(gòu)造函數(shù)調(diào)用GetDC,析構(gòu)函數(shù)調(diào)用ReleaseDC函數(shù)。CWindowDC允許在窗口的任意位置中進(jìn)行繪圖,點(diǎn)(0,0)指整個(gè)窗口的左上角。其構(gòu)造函數(shù)調(diào)用GetWindowDC,析構(gòu)函數(shù)調(diào)用ReleaseDC函數(shù)。33)編譯運(yùn)行,結(jié)果如圖5.2.1所示。說(shuō)明:StockObject()該函數(shù)檢索預(yù)定
6、義的備用筆、刷子、字體或者調(diào)色板的句柄。參數(shù):LTGRAY_BRUSH:亮灰色畫(huà)筆;BLACK_BRUSH黑色畫(huà)筆;NULL_BRUSH:空畫(huà)筆(相當(dāng)于HOLLOW_BRUSH);WHITE_BRUSH:白色畫(huà)筆;BLACK_PEN:黑色鋼筆;......2、在視圖類的一般函數(shù)中繪圖、在視圖類的一般函數(shù)中繪圖例52在鼠標(biāo)放下函數(shù)WM_LBUTTONDOWN函數(shù)中繪圖(1)創(chuàng)建一個(gè)單文檔應(yīng)用程序,名為:一般函數(shù)繪圖(2)利用MFCClas
7、sWizard將鼠標(biāo)放下WM_LBUTTONDOWN消息映射到視圖類CMyView中,并添加代碼:voidCMyView::OnLButtonDown(UINTnFlagsCPointpoint)定義一個(gè)矩形CRectrect(00100100)GetDC檢索整個(gè)屏幕的設(shè)備上下文環(huán)境CDCpDC=GetDC()pDCRectangle(rect)繪制矩形ReleaseDC(pDC)釋放pDC空間CView::OnLButtonDown(
8、nFlagspoint)(3)編譯運(yùn)行,鼠標(biāo)點(diǎn)擊窗口,出現(xiàn)圖5.2.2在OnLButtonDown函數(shù)中繪圖圖5.2.2所示的矩形。522CPaintDC類CPaintDC對(duì)象代表了一個(gè)窗口的繪圖畫(huà)面,主要用來(lái)繪圖。它可以用來(lái)處理來(lái)自Windows的WM_PAINT消息。改變窗口大小或移動(dòng)覆蓋在窗上的窗口或?qū)υ捒驎r(shí),Windows會(huì)發(fā)送WM_PAINT消息以通知客戶區(qū)的變動(dòng),而WM_PAINT消息的處理是在OnPaint()消息處理函數(shù)
9、中進(jìn)行的。例53在WM_PAINT消息函數(shù)中繪圖(1)創(chuàng)建一個(gè)單文檔的應(yīng)用程序,名為:繪圖(2)利用MFCClassWizard將WM_PAINT消息映射到視圖類(View)中,并添加代碼:voidCMyView::OnPaint()CPaintDCdc(this)調(diào)用MoveTo函數(shù),定點(diǎn)到點(diǎn)(10,10)dc.MoveTo(1010)調(diào)用Lio函數(shù),畫(huà)線到點(diǎn)(100,100)dc.Lio(100100)畫(huà)線調(diào)用畫(huà)橢圓函數(shù)Ellips
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- vc++講義第10單元 圖形設(shè)備接口
- vc++課程設(shè)計(jì)報(bào)告---橫向繪制余弦曲線
- [vc++畢設(shè)]vc++簡(jiǎn)單幾何圖形的識(shí)別和編輯系統(tǒng)+論文
- [vc++畢設(shè)]vc++車輛調(diào)度
- [vc++畢設(shè)]vc++庫(kù)存管理
- [vc++畢設(shè)]vc++象棋程序+論文
- [vc++畢設(shè)]vc++醫(yī)藥管理系統(tǒng)+論文
- [vc++畢設(shè)]vc++航空檢票系統(tǒng)+論文
- 基于vc++的平面曲線繪制畢業(yè)設(shè)計(jì)論文
- [vc++畢設(shè)]vc++開(kāi)發(fā)gis項(xiàng)目程序+論文
- vc++串口編程
- vc++內(nèi)嵌匯編
- [vc++畢設(shè)]vc++圖書(shū)館管理系統(tǒng)
- vc++對(duì)象模型
- 圖形處理軟件開(kāi)發(fā)(vc++)學(xué)士學(xué)位論文
- 第2章繪制圖形及編輯對(duì)象(2)
- 外文翻譯 vc++簡(jiǎn)介
- 談vc++對(duì)象模型
- [vc++畢設(shè)]vc++網(wǎng)上尋呼qicq源代碼(附帶論文)
- [vc++畢設(shè)]vc++學(xué)生成績(jī)統(tǒng)計(jì)分析系統(tǒng)
評(píng)論
0/150
提交評(píng)論