Windows程序設(shè)計(jì)教程 第2版 教學(xué)課件 作者 王秀梅 第5章-Windows繪圖程序設(shè)計(jì).ppt

Windows程序設(shè)計(jì)教程 第2版 教學(xué)課件 作者 王秀梅 第5章-Windows繪圖程序設(shè)計(jì).ppt

ID:50030256

大?。?.75 MB

頁(yè)數(shù):110頁(yè)

時(shí)間:2020-03-07

Windows程序設(shè)計(jì)教程 第2版 教學(xué)課件 作者 王秀梅 第5章-Windows繪圖程序設(shè)計(jì).ppt_第1頁(yè)
Windows程序設(shè)計(jì)教程 第2版 教學(xué)課件 作者 王秀梅 第5章-Windows繪圖程序設(shè)計(jì).ppt_第2頁(yè)
Windows程序設(shè)計(jì)教程 第2版 教學(xué)課件 作者 王秀梅 第5章-Windows繪圖程序設(shè)計(jì).ppt_第3頁(yè)
Windows程序設(shè)計(jì)教程 第2版 教學(xué)課件 作者 王秀梅 第5章-Windows繪圖程序設(shè)計(jì).ppt_第4頁(yè)
Windows程序設(shè)計(jì)教程 第2版 教學(xué)課件 作者 王秀梅 第5章-Windows繪圖程序設(shè)計(jì).ppt_第5頁(yè)
資源描述:

《Windows程序設(shè)計(jì)教程 第2版 教學(xué)課件 作者 王秀梅 第5章-Windows繪圖程序設(shè)計(jì).ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。

1、在編寫(xiě)Windows應(yīng)用程序過(guò)程中,加載位圖或者創(chuàng)建位圖是程序員常用的方法。只有熟練地掌握對(duì)于位圖的有關(guān)操作方法,才能編寫(xiě)出標(biāo)準(zhǔn)且美觀的應(yīng)用程序。本章主要介紹Windows繪圖程序有關(guān)的知識(shí),并對(duì)繪圖所需要的類(lèi)進(jìn)行充分講解。通過(guò)本章的學(xué)習(xí),讀者可以掌握各種圖形的繪制及圖像在窗口中的一些操作。圖形設(shè)備接口5.1設(shè)備上下文5.2GDI對(duì)象5.3繪圖函數(shù)5.4畫(huà)筆與畫(huà)刷5.55.1圖形設(shè)備接口在MS-DOS程序中,通常采用直接向視頻存儲(chǔ)區(qū)或打印機(jī)端口輸送數(shù)據(jù)的方式。但采用這種方式需要各種顯示卡或打印機(jī)驅(qū)動(dòng)程序。為了支持這些設(shè)備,又需要編寫(xiě)大量不同的代碼來(lái)包含這些驅(qū)動(dòng)程序。為了避免上述問(wèn)題,Wi

2、ndows提供了一個(gè)抽象的接口—圖形設(shè)備接口(GraphicsDeviceInterface,GDI)。5.2設(shè)備上下文設(shè)備上下文(DeviceContext,DC)。設(shè)備上下文是一種包含有關(guān)某個(gè)設(shè)備(如顯示器或打印機(jī))的繪制屬性信息的Windows數(shù)據(jù)結(jié)構(gòu)。下面對(duì)設(shè)備上下文進(jìn)行詳細(xì)介紹。5.2.1設(shè)備上下文介紹在Windows應(yīng)用程序設(shè)計(jì)中,所有繪制調(diào)用都通過(guò)設(shè)備上下文對(duì)象進(jìn)行,這些對(duì)象封裝了用于繪制線條、形狀和文本的WindowsAPI。設(shè)備上下文允許在Windows中進(jìn)行與設(shè)備無(wú)關(guān)的繪制。設(shè)備上下文可用于繪制到屏幕、打印機(jī)或者圖元文件。在Windows應(yīng)用程序中,每個(gè)窗口都關(guān)聯(lián)有設(shè)

3、備上下文。用戶(hù)只要獲取到窗口的設(shè)備上下文,就可以在窗口中繪制各種圖形圖像等信息。獲取窗口設(shè)備上下文的函數(shù)是GetDC(),該函數(shù)的原型如下:HDCGetDC(HWNDhWnd);圖5.1程序sample0501的運(yùn)行結(jié)果5.2.2設(shè)備上下文類(lèi)型1.顯示設(shè)備上下文2.打印機(jī)設(shè)備上下文3.內(nèi)存設(shè)備上下文4.信息設(shè)備上下文5.2.3設(shè)備上下文MFC類(lèi)在MFC中,為了方便用戶(hù)繪圖,提供了一個(gè)設(shè)備上下文類(lèi)——CDC。CDC類(lèi)封裝了繪圖所需要的所有成員函數(shù),以及各種類(lèi)型的Windows設(shè)備上下文的全部功能。此外,CDC還提供了幾個(gè)派生類(lèi),如圖5.2所示。1.CDC類(lèi)在CDC類(lèi)中存在兩個(gè)成員變量,m_

4、hDC和m_hAttribDC。這兩個(gè)成員變量都是Windows設(shè)備上下文句柄。CDC對(duì)象使用m_hDC對(duì)其所有的成員函數(shù)作輸出調(diào)用,而使用m_hAttribDC對(duì)其所有的成員函數(shù)作屬性調(diào)用。CDC類(lèi)的構(gòu)造函數(shù)原型如下:圖5.2設(shè)備上下文MFC類(lèi)CDC::CDC(){m_hDC=NULL;m_hAttribDC=NULL;m_bPrinting=FALSE;}CDC::~CDC(){if(m_hDC!=NULL)::DeleteDC(Detach());}2.CPaintDC類(lèi)在Windows應(yīng)用程序中,通常在繪制圖像之前調(diào)用函數(shù)BeginPaint(),然后在設(shè)備上下文中進(jìn)行一系列的繪

5、制操作,最后調(diào)用EndPaint函數(shù)結(jié)束繪制。在MFC中,CPaintDC類(lèi)完全封裝了這一過(guò)程,其機(jī)制是這樣的:在構(gòu)造CPaintDC對(duì)象的同時(shí),其構(gòu)造函數(shù)自動(dòng)調(diào)用BeginPaint()函數(shù);在銷(xiāo)毀CPaintDC對(duì)象的同時(shí),其析構(gòu)函數(shù)自動(dòng)調(diào)用EndPaint()函數(shù)。因此整個(gè)過(guò)程可以簡(jiǎn)化如下:構(gòu)造CDC對(duì)象,執(zhí)行繪制操作,最終銷(xiāo)毀CDC對(duì)象。CPaintDC類(lèi)是所有CDC類(lèi)中最常用的一個(gè)類(lèi),該類(lèi)代表了應(yīng)用程序窗口的客戶(hù)區(qū),其只能運(yùn)行在CView類(lèi)中的OnDraw()函數(shù)中。OnDraw()函數(shù)的原型如下:voidCView::OnDraw(CDC*pDC){CDoc*pDoc=Get

6、Document();ASSERT_VALID(pDoc);}3.CClientDC類(lèi)與CPaintDC類(lèi)一樣,CClientDC類(lèi)所封裝的設(shè)備上下文僅代表一個(gè)窗口的客戶(hù)區(qū)。但與CPaintDC類(lèi)不同的是,CPaintDC類(lèi)的對(duì)象只能在視圖類(lèi)的OnDraw()函數(shù)中使用,而CClientDC類(lèi)的對(duì)象可以在除了OnDraw()函數(shù)之外的任何地方使用。圖5.3程序sample0502的運(yùn)行結(jié)果圖5.4彈出式菜單圖5.5添加單擊消息圖5.6程序sample0503的運(yùn)行結(jié)果4.CWindowDC類(lèi)CWindowDC類(lèi)所封裝的設(shè)備上下文表示的是整個(gè)窗口,即不僅包括其客戶(hù)區(qū),同時(shí)也包括窗口的邊框及

7、標(biāo)題欄等其他非客戶(hù)區(qū)對(duì)象。其構(gòu)造函數(shù)如下:CWindowDC::CWindowDC(CWnd*pWnd){ASSERT(pWnd==NULL

8、

9、::IsWindow(pWnd->m_hWnd));if(!Attach(::GetWindowDC(m_hWnd=pWnd->GetSafeHwnd())))AfxThrowResourceException();}5.CMetaFileDC類(lèi)在應(yīng)用程序中,有時(shí)需要重復(fù)顯示一些圖形。如果每

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。