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

正文內(nèi)容

windowsgdi雙緩沖繪圖技術(shù)研究---畢業(yè)論文(編輯修改稿)

2024-12-20 02:32 本頁面
 

【文章內(nèi)容簡介】 種位圖形式的像素,利用它可對區(qū)域內(nèi)部填充顏色。 ● CFont —— 字體是一種具 有某種風格和尺寸的所有字符的完整集合,它常常被當作 資源存于磁盤中,其中有一些還依賴于某種設(shè)備。 ● CPen—— 畫筆是一種用來畫線及繪制有形邊框的工具,用戶可以指定它的顏色及厚度,并且可以指定它畫實線、點線或虛線。 ● CRgn —— 區(qū)域是由多邊形、橢圓或二蓄組合形成的一種范圍,可以利用它來進行填 充、裁剪以及鼠標點中測試。 ● CPalette—— 調(diào)色扳是一種顏色映射接口,它允許應用程序在不干擾其他應用程序的前提下,充分利用輸出設(shè)備的顏色描繪能力。 通常 情況下,我們都是使用 GDI繪圖對象類所創(chuàng)建的對象進行繪制各種圖形的,就好像畫家手里必須拿著畫筆才能作畫一樣。繪圖對象也就相當于畫家手里的畫筆,而設(shè)備環(huán)境如同這支畫筆應該被哪個畫家 (每個畫家都有自己的風格 )拿著以及在什么樣的畫紙上作畫。 為了讓讀者能夠更好的理解這部分知識,下面將詳細介紹每個 GDI對象類是如何創(chuàng)建其繪圖對象的及其部分重要的成員函數(shù) [13][14]。 我們可以在 MFC的 。 CPen類 該類封裝了 Windows圖形設(shè)備接口 (GDI)畫 筆,主要通過構(gòu)造函數(shù)來創(chuàng)建繪圖對象。 CPen對象 該類共重載了 3個構(gòu)造函數(shù),下面分別進行詳細說明: Cpen(); CPen(int nPenStyle, int nWidth, COLRREF crCo1or); throw(CResourceExcetion)。 CPen(int nPenStyle, int nWidth, constLOGBRUSH*pLogBrush, int nStylecount=0, Const DWORD*lpStyle=NULL)。 throw(CResourceException)。 第一個構(gòu)造函數(shù)不帶任何參數(shù),由于它所構(gòu)造的只是一個未初始他的 CPen對象,對該 CPen對象進行初始化的方法將在本節(jié)后面詳細介紹,另外,該構(gòu)造函數(shù)總是可以被成功調(diào)用的。 第二個構(gòu)造函數(shù)帶有 3個參數(shù),分別對畫筆的線形、線寬和顏色進行了初始化。下面分 別對其常用的參數(shù)進行介紹: 參數(shù) nPenStyle:指定畫筆的風格 (樣式 ),也就是畫筆的線形。該參數(shù)該構(gòu)造函數(shù)中可 以為如表 3— 1所列值。 表 3— 1 參數(shù) nPenStyle的值 參數(shù)值 注 釋 PS_SOLID 創(chuàng)建一個實線畫筆。 PS_DASH 創(chuàng)建一個虛線畫筆,該值只有當畫筆寬度小于 1個設(shè)備單位或更小時才有效。 PS_DOT 創(chuàng)建一個點線畫筆,該值只有當畫筆寬廢小于 1個設(shè)備單位或更小時才有效。 PS_DASHDOT 創(chuàng)建一個點線畫筆,該值只有當畫筆寬度小于 1個設(shè)備單位或更小時才有效。 PS_DASHDOTDOT 創(chuàng)建一個雙點線畫筆,該值只有當畫筆寬度小于 1個設(shè)備單位或更小時才有效 PS_NULL 創(chuàng)建一個空線畫筆。 PS_INSIDEFRAME 創(chuàng)建一個內(nèi)框線畫筆 ,該畫筆可以在 windows GDI 輸出函數(shù)定義的矩形邊界所生成的封裝形狀的邊框內(nèi)繪直線 參數(shù) nWidth:該參數(shù)指定畫筆的寬度。對于該構(gòu)造函數(shù),如果該值為 0,那么無論是什么映射模式,設(shè)備單位的寬度總是 1個像素。 參數(shù) rColor:包含了一個畫筆所具有的 RGB顏色。 第三個構(gòu)造函數(shù)帶有 5個參數(shù),下面分別加以介紹: 參數(shù) nPenStyle:功能同上,除了具有上一個構(gòu)造函數(shù)中所介紹的參數(shù)值外,還新增了如 表 3— 2所列的參數(shù)值。 表 3— 2新增的 nPenStyle參數(shù)值 參 數(shù) 值 注 釋 PS_GEOMETRIC 創(chuàng)建一個幾何畫筆。 PS_COSMETIC 創(chuàng)建一個裝飾畫筆。 PS_ALTERNATE 創(chuàng)建一個設(shè)置其他像素的畫筆。 (該風格只對裝飾畫筆可用 ) PS_USERSTYLE 創(chuàng)建一個使用由用戶提供的風格矩陣的囚筆。 PS_ENDCAP_ROUND 端點為圓形的。 PS_ENDCAP_SQUARE 端點為方形的。 PS_ENDCAP_FLAT 端點為平坦的。 PS_JOIN_BEVEL 成尖角連接。 PS_JOIN_MITER 通過 SetMiterLimit函數(shù)設(shè)置的當前極限值范圍內(nèi)斜接;否則,成尖角連接。 PS_JOIN_ROUND 成圓角連接。 參數(shù) nWidth;含義基本與上一構(gòu)造函數(shù)的同一參數(shù)含義相同,區(qū)別在于如果參數(shù) nPenStyle的值為 PS_GEOMETRIC,那么該參數(shù)值是針對邏輯單位而言的,并且該參數(shù)值恒為 1。 參數(shù) pLogBrush:指向一個 LOGBRUSH結(jié)構(gòu)。該結(jié)構(gòu)原型聲明如下: Typedef struct tag LOGBRUSH {/**lb/ UINT lbStyle。 LONG lbHatch。 } LOGBRUSH。 該結(jié)構(gòu)定義了一個畫刷的風格,顏色和陰影線種類。成員 lbStyle的值如表 3— 3所示。 表 3— 3 畫刷的風格值 參 數(shù) 值 注釋 BS_DIBPATTERN 由設(shè)備無關(guān)的位圖( DIB)定義的圖形畫刷。如果該參數(shù)值為該值,則成員 lbHatch包含了一個被壓縮的 DIB的句柄。 BS_DIBPATTERNPT 由設(shè)備無關(guān)的位圖( DIB)定義的圖形畫刷。如果該參數(shù)值為該值,則成員 lbHatch包含了一個被壓縮的 DIB的指針。 BS_HATCHED 陰影線畫刷。 BS_HOLLOW 中空畫刷。 BS_NULL 與參數(shù)值為 BS_HOLLOW定義相同的畫刷。 BS_PATTERN 由內(nèi)存位圖定義的圖形畫刷。 BS_SOLID 實畫刷。 成員 lbColor指定了所指定畫刷的顏色。 成員 lbHatch指定了陰影線畫刷的陰影線的樣式。參見表 3— 4。 如果參數(shù) nPenStyle的值為 PS _COSMETIC,那么 LOGBRUSH結(jié)構(gòu)的成員變量lbColor 指定畫筆酌顏色,成員變量 lbStyle必須被設(shè)為 BS_SOLD。如果參數(shù)此 nPenSty1e的值為 PS_GEOMETRIC,那么所有的 成員變量必須被用來指定畫筆的刷子屬性。 參數(shù) nStyleCount:以雙字為一個單元指定 lpSty1e矩陣的長度。如果參數(shù)nPenStyle的值不是 PS_USERSTYLE,則該參數(shù)值必為 0。 參數(shù) lpStyle:指向一個雙字為單元的矩陣。第一個值以用戶定義的風格指定了第一個直線段的長度。第二個值指定了第一個空隙的長度等。如果參數(shù) nPenStyle的值不是 PS_USERSTYLE,那么這個指針必為空 (NULL)。 使用第二個和第三個構(gòu)造函數(shù)構(gòu)造的 CPen對象不帝要再進行初始化了。這兩個構(gòu)造函數(shù)在被調(diào)用的過程中,如果遇到錯誤也會產(chǎn)生一個異常。 CPen對象 ● 調(diào)用 CreatePen()成員函數(shù) CreatePen()成員函數(shù)通過指定線形、線寬和顏色等畫筆屬性參數(shù)直接創(chuàng)建一個具有特定線形、線寬和顏色的畫筆對象,其原型聲明如下: DOOL CreatePen(int nPenStyle,int nWidth,COLORREF crColor)。 BOOL CreatePen(int nPenStyle,int nWidth,const LOGBRUSH*pLogBrush,int nStleCount=0,count DWORD*lpStyle= NULL)。 所有參數(shù)的含義與上面介紹的一樣。 ● 調(diào)用 CreatePenIndirect()成員函數(shù) CreatePenIndirect()成員函數(shù)創(chuàng)建畫筆對象,其屬性并不是直接通過函數(shù)參數(shù)的形式給出 的,而是通過 LOGPEN結(jié)構(gòu)的成員變量間接的給出。為了創(chuàng)建一個具有特定屬性的畫筆對象主要工作是重量 LOGPEN結(jié)構(gòu)的成員變量,該函數(shù)的原型聲明如下; BOOL CreatePenlndirrect(LPLOGPEN lpLogPen); 參數(shù) IpLogPen是指向 LOGPEN結(jié)構(gòu)的指針,在該結(jié)構(gòu)中有 3個成員變量,定畫筆的風格、寬度和顏色。 LOGPEN結(jié)構(gòu)的具體定義如下: typedef strust tagLOGPEN {/*lgpn*/ UINT lopnStyle。 POINT lopnWidth; COLORREF lopnCorlor; }LOGPEN; 第二個成員變量 lopnWidth雖然也是用于指定畫筆的寬度,但其類型卻是 POINT結(jié)構(gòu) , 在該結(jié)構(gòu)中的 y成員變量不起任何作用,只采用 x成員變量來表示畫筆寬度。 在實際使用中,既可以使用 CreatePenIndirect()函數(shù)來創(chuàng)建畫筆對象,也可以使用 CreatePen()函數(shù)來創(chuàng)建,其實這兩個函數(shù)是可互換的。 CBrush類 該類封裝了 Windows的圖形設(shè)備接口 (GDI)刷子。通過該類構(gòu)造的 CBrush對象可以傳遞給任何一個需要畫刷的 CDC成員函數(shù)。該畫刷可以是實線、陰影線和某種圖案。 CBrush對象 該類具有 4個重載的構(gòu)造函數(shù),下面分別加以介紹: CBrush()。 CBrush(COLORREF Color)。 throw(CResourException)。 CBrush(int nIndex, COLOREF crColor); throw(CResourException)。 CBrush(Cbitmap*pBitmap)。 throw(CResourException)。 第一個構(gòu)造函數(shù)了一支未被初始化的畫刷,如果用戶使用構(gòu)造函數(shù)。則必須對所得到的Cbrush對象進行初始化。 下面是對這些構(gòu)造函數(shù)所用到 的參數(shù)的詳細說明: 參數(shù) crColor:以 RGB顏色指定畫刷的前景色。如果是表示陰影線的畫刷,則該參數(shù)指定的是陰影線的顏色。 參數(shù) nIndex:指定了畫刷的陰影線的風格,詳細介紹如表 3— 4所示。 表 3— 4畫刷的陰影線的樣式 陰影線參數(shù)值 注 釋 HS_BDIAGONAL 從左到右向下成 45。的對角線。 HS_CROSS 水平線和垂直線相交的十字交又線。 HS_DIAGCROSS 夾角為 45“ 的斜十字交叉線。 HS_FDIAGONAL 從左到右向上成 45。的對角線。 HS_HORIZONTAL 水平陰影線。 HS_VERTICAL 垂直陰影線。 參數(shù) pBitmap:指向一個 CBitmap對象,該對象指定了一幅畫刷用來繪圖的位圖。 CBrush對象 除了使用構(gòu)造函數(shù)創(chuàng)建初始化過的畫刷對象,還有以下幾種初始化方法: ● 調(diào)用 CBrush:: CreateSolidBrush()成員因數(shù)來初始化實畫刷,以便使用純色來填充區(qū)域內(nèi)部,該函數(shù)原型聲明如下: BOOL CreateSolidBrush(COLORREF crColor)。 參數(shù) crColor指定了由結(jié)構(gòu) COLORREF定義的畫刷顏色,該顏色值是由定義在 文件中的 RGB宏指定的。 ● 調(diào)用 CBrush:: CreateSolidBrush()成員因數(shù)來初始化陰影畫刷,其原型聲明如下: DOOL CreateSolidBrush(int nlndex ,COLORREF crColor); 參數(shù)與構(gòu)造函數(shù)中的參數(shù)完全相同。 ● 調(diào)用 CBrush:: CreateSolidBrush()成員函數(shù)來初始化一個圖形畫刷,當使用該畫刷填充圖形時, 圖形內(nèi)部將用位圖一個接一個的填充。該函數(shù)原型聲明如下: BOOL CreateSolidBrush(Cbitmap*pBitmap)。 參數(shù)如前所述。 使用圖形畫刷需要注意的是在刪除圖形畫刷時,與畫刷相聯(lián)系的位圖并末被刪除。位圖必須被單獨地刪除。 ● 調(diào)用 CBrush:: CreateBrushIndirect()成員函數(shù)來創(chuàng)建畫刷對象,但畫刷的屬性并不是直接通過函數(shù)參數(shù)的形式給出的,而是通過 LOGBRUSH結(jié)構(gòu)的成員變量間接的給出的。該函數(shù)原型聲明如下: BOOL CreateBrushIndirect(const LOGBRUSH*lplogBrush); 其中的 lplogBrush參數(shù)是指向 LOGBRUSH結(jié)構(gòu)的指針。 LOGBRUSH結(jié)構(gòu)中包含有關(guān) 畫刷的信息。 函數(shù)如果調(diào)用成功,則返回非零值,否則返回零。 另外我們還可以使用 CBrush:: CreateDIBPatternBrush()成員函數(shù)來創(chuàng)建一個由設(shè)備無關(guān)位圖 (DIB)指定的圖形畫刷。該畫刷可以被選進任何一種設(shè)備環(huán)境以便支持光柵操作。 CFont類 該類封裝一個 Wind
點擊復制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1