Windows繪圖及文本輸出

Windows繪圖及文本輸出

ID:38580228

大小:388.82 KB

頁數(shù):14頁

時(shí)間:2019-06-15

Windows繪圖及文本輸出_第1頁
Windows繪圖及文本輸出_第2頁
Windows繪圖及文本輸出_第3頁
Windows繪圖及文本輸出_第4頁
Windows繪圖及文本輸出_第5頁
資源描述:

《Windows繪圖及文本輸出》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、11Windows繪圖及文本輸出Windows環(huán)境是基于圖形操作的,圖形設(shè)備接口(GDI)是一個(gè)在Windows應(yīng)用程序中執(zhí)行與設(shè)備無關(guān)的函數(shù)庫。這些函數(shù)在不同的輸出設(shè)備上產(chǎn)生圖形及文字輸出。1.設(shè)備描述表設(shè)備描述表描述了所選定的繪圖工具、字體、字體顏色等在設(shè)備上繪制(或者說是映射)的方式及設(shè)備上可使用的輸出區(qū)域等屬性。當(dāng)程序顯示文字或繪圖時(shí),首先必須獲得一個(gè)設(shè)備描述表句柄,完成輸出文字或繪圖之后,還必須及時(shí)釋放該句柄。以下是設(shè)備描述表常用函數(shù):(1)GetDC函數(shù)該函數(shù)獲取指定窗口的客戶區(qū)域或整個(gè)屏幕的顯示設(shè)備描述表的句柄,以便可以在GDI函數(shù)中

2、使用該句柄來在顯示設(shè)備中繪圖。函數(shù)原型為:HDCGetDC(HWNDhWnd);(2)ReleaseDC函數(shù)ReleaseDC函數(shù)用來釋放設(shè)備描述表句柄,其函數(shù)原型為:intReleaseDC(HWNDhWnd,HDChDC);(3)BeginPaint函數(shù)BeginPaint函數(shù)為在指定窗口中畫圖作準(zhǔn)備工作,并且把與畫圖有關(guān)的信息填寫到PAINTSTRUCT結(jié)構(gòu)中,函數(shù)原型為:HDCBeginPaint(HWNDhwnd,LPPAINTSTRUCTlpPaint);其中l(wèi)pPaint是指向PAINTSTRUCT結(jié)構(gòu)的指針。結(jié)構(gòu)PAINTSTRUC

3、T的原型如下:typedefstructtagPAINTSTRUCT{HANDLEhDC;??????//設(shè)備描述表句柄BOOLrErase;?????//確定背景是否已被重畫RECTrePaint;????//給出無效矩形的邊界BOOLfRestore;???//內(nèi)部使用的保留字段BOOLfIncUpdate;?//保留字段BYTErgbReserved;//保留字段}PAINTSTRUCT;(4)EndPaint函數(shù)EndPaint函數(shù)通知Windows所有輸出操作均已處理完畢,并釋放顯示緩沖區(qū)。其函數(shù)原型為:voidEndPaint(HWND

4、hwnd,LPPAINTSTRUCTlpPaint);2.圖形刷新(1)顯示緩沖區(qū)顯示緩沖區(qū)定義與窗口用戶區(qū)有關(guān)的內(nèi)容,包括輸出設(shè)備、當(dāng)前繪圖工具、顏色,以及其它一些GDI輸出函數(shù)產(chǎn)生輸出所需的信息。在窗口中繪圖,需要使用窗口的句柄,根據(jù)窗口句柄,可以得到窗口用戶區(qū)的顯示緩沖區(qū)句柄,所有GDI輸出函數(shù)都需要一個(gè)顯示緩沖區(qū)句柄,沒有它就無法完成輸出。顯示緩沖區(qū)中有缺省的畫筆、畫刷和缺省字模。每當(dāng)對(duì)窗口的操作可能影響用戶區(qū)內(nèi)容時(shí),Windows發(fā)送WM_PAINT消息給窗口函數(shù),通常用BeginPaint函數(shù)來響應(yīng)WM_PAINT消息。如果要在沒有WM

5、_PAINT消息的時(shí)刻畫用戶區(qū),必須使用GetDC函數(shù)得到顯示緩沖區(qū)的句柄。顯示緩沖區(qū)是一種共享資源,一個(gè)應(yīng)用程序占有它之后,其它應(yīng)用程序就無法得到它。因此,應(yīng)用程序在利用顯示緩沖區(qū)畫完窗口內(nèi)容之后,就必須使用ReleaseDC函數(shù)釋放它。同理,要求用EndPaint函數(shù)釋放由BeginPaint函數(shù)獲得的顯示緩沖區(qū)。(2)WM_PAINT消息要求Windows發(fā)送WM_PAINT的情況有:改變窗口大小,覆蓋用戶區(qū)的菜單或?qū)υ捒蜿P(guān)閉,使用UpdateWindow和ScrollWindow函數(shù)等。Windows并非WM_PAINT消息的唯一來源,使用

6、InvalidateRect或InvalidateRgn函數(shù)也可以產(chǎn)生繪圖窗口的WM_PAINT消息。這兩個(gè)函數(shù)把用戶區(qū)全部或部分標(biāo)記成無效用戶區(qū)而要求重新顯示。(3)非WM_PAINT消息在處理非WM_PAINT消息時(shí),應(yīng)用程序獲取窗口用戶區(qū)設(shè)備描述表句柄使用GetDC函數(shù),它常常用來對(duì)用戶的某些動(dòng)作提供反饋。3.映像模式(1)坐標(biāo)系統(tǒng)顯示緩沖區(qū)默認(rèn)的坐標(biāo)系統(tǒng)中用戶區(qū)的左上角是原點(diǎn),即點(diǎn)(0,0)。向右的每個(gè)像素表示X軸方向的一個(gè)單位,向下的每個(gè)像素表示Y軸方向的一個(gè)單位。(2)映像模式的設(shè)置通過修改映射模式和顯示原點(diǎn),可以改變坐標(biāo)系統(tǒng)。Wind

7、ows應(yīng)用程序可通過調(diào)用SetMapMode函數(shù)來設(shè)定映射模式,通過調(diào)用SetViewPortOrg函數(shù),可以把坐標(biāo)系統(tǒng)原點(diǎn)移到任何位置。默認(rèn)的映射模式為MM_TEXT,即默認(rèn)的坐標(biāo)系統(tǒng)。當(dāng)前設(shè)備描述表的映射方式可通過調(diào)用GetMapMode函數(shù)得到。①SetMapMode函數(shù)intSetMapMode(HDChdc,intnMapMode);說明:參數(shù)nMapMode是映射模式。映射共有8種映射模式,取值及含義如下:②GetMapMode函數(shù)DWORDGetMapMode(HDChDC)③SetViewPortOrg函數(shù)DWORDSetViewP

8、ortOrg(HDChDC,intx,inty)繪圖工具和顏色的設(shè)置與應(yīng)用1.畫筆的應(yīng)用Windows使用當(dāng)前在設(shè)備描述表

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

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

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(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)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。