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

正文內(nèi)容

windowsgdi雙緩沖繪圖技術(shù)研究---畢業(yè)論文(文件)

2024-12-08 02:32 上一頁面

下一頁面
 

【正文】 S_COSMETIC 創(chuàng)建一個裝飾畫筆。 PS_ENDCAP_SQUARE 端點為方形的。 PS_JOIN_ROUND 成圓角連接。 LONG lbHatch。 表 3— 3 畫刷的風(fēng)格值 參 數(shù) 值 注釋 BS_DIBPATTERN 由設(shè)備無關(guān)的位圖( DIB)定義的圖形畫刷。 BS_HATCHED 陰影線畫刷。 BS_SOLID 實畫刷。 如果參數(shù) nPenStyle的值為 PS _COSMETIC,那么 LOGBRUSH結(jié)構(gòu)的成員變量lbColor 指定畫筆酌顏色,成員變量 lbStyle必須被設(shè)為 BS_SOLD。 參數(shù) lpStyle:指向一個雙字為單元的矩陣。 使用第二個和第三個構(gòu)造函數(shù)構(gòu)造的 CPen對象不帝要再進行初始化了。 所有參數(shù)的含義與上面介紹的一樣。 POINT lopnWidth; COLORREF lopnCorlor; }LOGPEN; 第二個成員變量 lopnWidth雖然也是用于指定畫筆的寬度,但其類型卻是 POINT結(jié)構(gòu) , 在該結(jié)構(gòu)中的 y成員變量不起任何作用,只采用 x成員變量來表示畫筆寬度。該畫刷可以是實線、陰影線和某種圖案。 CBrush(int nIndex, COLOREF crColor); throw(CResourException)。則必須對所得到的Cbrush對象進行初始化。 表 3— 4畫刷的陰影線的樣式 陰影線參數(shù)值 注 釋 HS_BDIAGONAL 從左到右向下成 45。 HS_FDIAGONAL 從左到右向上成 45。 參數(shù) pBitmap:指向一個 CBitmap對象,該對象指定了一幅畫刷用來繪圖的位圖。 ● 調(diào)用 CBrush:: CreateSolidBrush()成員函數(shù)來初始化一個圖形畫刷,當使用該畫刷填充圖形時, 圖形內(nèi)部將用位圖一個接一個的填充。位圖必須被單獨地刪除。 函數(shù)如果調(diào)用成功,則返回非零值,否則返回零。 CFont類對象 該類只有一個構(gòu)造函數(shù),即 CFont();該函數(shù)構(gòu)造一個 CFont對象。 參數(shù) nWindth:定義邏輯單位度量的字體的平均寬度。 參數(shù) nWeight :定義了字體的濃度即字體的粗細程度 (像素數(shù) 1/1000)。 參數(shù) cStrikeOut:確定字體是否被穿透。一般取下列值之一:OUT_CHARATER_PRECIS、 OUT_DEFAULT_PRECIS、 OUT_DEVICE_PRECIS、 OUT_RASTER_PRECIS、OUT_STRING_PRECIS、 OUT_STROKE_PRECIS和 OUT_TI_PRECIS。 參數(shù) nPitchAndFamily:確定了字體的間距和所屬的族。該參數(shù)的值一定不能超過 30個字符,這個名稱可由用戶自行定義。 LONG lfOrientation。 BYTE lfStrikeOut。 BYTE lfQuality。 該結(jié)構(gòu)各成員變量的值與前面介紹的 CreateFont函數(shù)的參數(shù)基本相同。 3. 構(gòu)造 CRgn對象 可以使用構(gòu)造函數(shù)創(chuàng)建一個未被初始化的區(qū)域?qū)ο螅? CRgn(); 構(gòu)造一個 CRgn對象。使用該成員函數(shù)創(chuàng)建一個矩形區(qū) 域,該區(qū)域被存放在 一個 CRgn對象中。 參數(shù) lpRect指向一個包含矩形區(qū)域的左上角點和右下角點 的邏輯坐標的 RECT結(jié)構(gòu)或是 Crect對象。 ● 使用成員函數(shù) CreateEllipticRgn()直接創(chuàng)建一個橢圓形區(qū)域, BOOL CreateEllipticRgn(int x1,int y1,int x2,int y2)。 ● 使用成員函數(shù) CreatePolygonRgn()創(chuàng)建一個多邊形區(qū)域, BOOL CreatePolygonRgn(LPPOINT lpPoints,int nCount,int nMode)。 }POINT 參數(shù) nCount指定了由 參數(shù) lpPoints確定的數(shù)組的個數(shù)。 下面分別調(diào)用上面兩個函數(shù)進行初始化一個矩形區(qū)域 (0, 0, 200, 200)和一個橢圓形區(qū)域; //定義一個 Crect對象; Crect rr(50, 50, 200,200); //初始化 CRgn對象成為一個矩形區(qū)域; (,)。 //刪除定義的 m_Rgn對象; 其中 m_Rgn為初始化后的 CRgn對象。 參數(shù) point的兩個分量 x和 y的含義與上面肋參數(shù) x和 y相同。 NULLREGION 表示區(qū)域為空。參數(shù) point的兩個分量 x和 y與前面的參數(shù)含義相同。 參數(shù) pRgnl和 pRgn2是兩個已經(jīng)存在的區(qū)域?qū)ο笾羔槨? 表 3— 9 區(qū)域組合的返回結(jié)果 返 回 值 含 義 COMPLEXREGION 區(qū)域覆蓋邊界 ERROR 區(qū)域無效 NULLREGION 區(qū)域為空 SIMPLEREGION 區(qū)域沒有覆蓋邊界 CPalette類 調(diào)色板是應(yīng)用程序和彩色輸出設(shè)備 (如顯示器 )之間的接口。 CPalette對象 調(diào)色扳的構(gòu)造函數(shù)只有一個,聲明如下 Cpalette(); 該構(gòu)造函數(shù)的作用只是聲明了一個調(diào)色板對象,應(yīng)用該對象之前還需調(diào)用初始化函數(shù)對 該調(diào)色扳對象進行初始化。 PALETTEENTRY palPalEntry[1]。 CBitmap類 位圖是一個由位構(gòu)成的圖象,它是由一系列數(shù)據(jù)排列而成的點陣結(jié)構(gòu),這些數(shù)據(jù)分別表示各點的顏色信息。 BOOL LoadBitmap( UINT nIDResource )。 本章主要介紹了與繪圖相關(guān)的 GDI對象類的定義和相關(guān)類的構(gòu)造以及相關(guān)的應(yīng)用。 windows提供了幾種映射模式,或稱為坐標系,可以通過它們來和設(shè)備坐標相聯(lián)系。 MM_LOMETRIC、 MM_HIMETRIC、 MM_LONGLISH、 MM_HIENGLISH 、 MM_TWIPS 被稱為 “ 固定比例 ” 映射模式。 (磅是一種度量單位,在 Windows中 1磅等于 1/ 72英寸 )。在 MM_ISOTROPIC模式下, x方向與 Y方向上酌比例因子總是相等的 (即縱橫比為 1: 1);而在 MM_ANISOTROPIC模式下, x方向與 Y方向上的比例因子可以不相等 (即縱橫比任意 ),因此通過這一特點,我們可以很容易的將圓拉伸成橢圓 [15]。返回值是先前的映射模式。 第二步, ResouceView標簽,選擇打開 Menu項,用鼠標左鑲雙擊名為IDR_MAINFRAME的菜單資源。 表 4— 2 菜單命令及其命令響應(yīng)函數(shù) 命令 ID 標題 命令消息函數(shù) ID_MAPMODE_TEXT TEXT(pixels) Om_nMapModeText() ID_MAPMODE_LOMETRIC LOMETRIC() Om_nMapModeLomeitric() ID_MAPMODE_HIMETRIC HIMETRIC() Om_nMapModeHimetric() ID_MAPMODE_LONGLISH LONGLISH() Om_nMapModeLonglish() ID_MAPMODE_HIENGLISH HIENGLISH() Om_nMapModeHienglish() ID_MAPMODE_ISOTROPIC ISOTROPIC(縱橫比為 1) Om_nMapModeIsotropic() ID_MAPMODE_ANISOTROPIC ANISOTROPIC(縱橫比可變 ) Om_nMapModeAnisotropic() 最后,實現(xiàn)命令消息函數(shù),以便確定當前的映射模式。每個菜單命令部對應(yīng)一個命令更新函數(shù),形式如下: void CmapModeView::OnUpdateMapmodeLonglish(CcmdUI*pCmdUI) { //TODO:Add your mand update UI handler code here int flag=0。該函數(shù)原型如下: Virtual void SetCheck(int nCheck=1); 參數(shù) nCheck指定了菜單狀態(tài), “0” 表示不加選擇標記, “1” 表示加選擇標記, “2” 則 表示未確定狀態(tài)。 pDCLineTo(,0)。 pDCTextOut(10,”Y”)。 GetClientRect(amp。 //設(shè)置屏幕窗口中心為原點; Pdc_SetViewportOrg(Cpoint(,))。amp。 Pdc_ellipse(crect(200,200,200,200))。通過本小結(jié)的了解 Windows映射模式和映射模 式的區(qū)別,以及各自的實現(xiàn)的方法等等。在 VC++中.我們可以采用 GDI位圖和內(nèi)存設(shè)備環(huán)境的方法來消除屏幕顯示動態(tài)圖形的閃爍問題,并提高顯示的速度。解決這一問題我們雙緩存繪圖技術(shù)。運行結(jié)果如圖 4— 1a和圖 4— 1b所示。 Else { //” 可變比例 “ 映射模式下的圖形顯示; //通過設(shè)置窗口與視口的大小,以便確定 X方向和 Y方向上的比例因子; Pdc_setwindowext(400,400)。 DrawCoord(pDC)。 //選取庫存 GDI對象; pDC_SelectStockObject(NULL_BRUSH)。請注意該圓形在不同映射模式下的大小和坐標軸方向的變化。 pDCMoveTo(0,0)。再選中 Add Memder FUNCTION?.. 命令添加成員函數(shù) DrawCoord(CDC*pDC)。 pCmdUISetCheck(flag)。 Invalidate(TRUE)。再添加如表 4— 2所示的命令 ID。 第一步,使用 VC++創(chuàng)建一個 MFC AppWizard(exe)工程,并命名為 MapMode(此工程名用戶可以任意指定 )。該函數(shù)的聲明如下: virtual int SetMapMode(int nMapMode)。在這些模式下,我們可以改變它們的比例因子和坐標原點。 (即笛卡兒坐標系 )它們之間的區(qū)別就在于設(shè)備坐標到邏輯坐標轉(zhuǎn)撓的實際比例因子 不同。 表 4— 1 Windows的 8種映射模式 映射模式 映射識別碼 邏輯單位 X軸正向 Y軸正向 MM_TEXT 1 Pixels 右 下 MM_LOMETRIC 2 右 上 MM_HIMETRIC 3 右 上 MM_LONGLISH 4 右 上 MM_HIENGLISH 5 右 上 MM_TWIPS 6 1/1440in 右 上 MM_ISOTROPIC 7 可變( x等于 y) 可變的 可變的 MM_ANISOTROPIC 8 可變( x不等于 y) 可變的 可變的 MM_TEXT映射模式允許應(yīng)用程序利用設(shè)備像素工作,因此用它來表示設(shè)備坐標系是再合適不過了。 4 Windows映射模式 Windows映射模式就是在 Windows方式下的屏幕的坐標方式。 CBitmap對象 位圖在顯示之前必須先裝入內(nèi)存,當駐留在內(nèi)存的位圖數(shù)據(jù)送到視頻內(nèi)存時,位圖就在顯示器上顯示。 CBitmap對象 MFC只提供了處理 DDB位圖的類 CBitmap,要顯示 DIB位圖,可以先將一個 DIB位圖轉(zhuǎn)換為 DDB位圖。 與 CRgn對象一樣,初始化后的 Cpalette對象也帝要調(diào) 用基類的成員函數(shù) DeleteObject來刪除對象。此函數(shù)的完整聲明如下; BOOL Cpalette(LPLOGPALETTE lpLonPalette); 其參數(shù) lpLonPalette指向一個 LOGPALETTE指針,它包含了邏輯調(diào)色板的顏色信息。 Windows使 用應(yīng)用程序的邏輯調(diào)色板和系統(tǒng)調(diào)色扳來確定位用的顏色。表 3— 8列出了一些參數(shù)值及其對應(yīng)的操作模式。 其原型聲明如下: BOOL PtInRegion(LPCRECT lpRect)const ; 參數(shù) lpRect指向了一個 RECT結(jié)構(gòu)或是 CRect對象,通過該參數(shù)指定了結(jié)定的矩形。 ● 使用 PtInRegion()成員函數(shù),來判斷給定點是否在區(qū)城內(nèi)部。 表 3— 7 區(qū)域類型 返 回 值 說 明 COMPLEXREGION 表示一個具有重疊邊界的區(qū)域。 ● 使用 OffsetRgn()成員函數(shù),按照給定的偏移量移動一個區(qū)域。 由于 CRgn對象的析構(gòu)函數(shù)不能刪除初始化后的 CRgn四對象,所以需要調(diào)用其基類的成員函數(shù) DeleteObject來刪除定義的 CRgn對象。 參數(shù) nMode指定了該區(qū)域的填充模式。 POINT結(jié)構(gòu)完整定義如下: typedef struct tagPOINT{ int x。 ● 使用成員函數(shù) CreateEllipticRgnIndirect()間接創(chuàng)建一個橢圓形區(qū)域, BOOL CreateE
點擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1