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