資源描述:
《cdc類的主要繪圖成員函數(shù)》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。
1、CDC類的主要繪圖成員函數(shù)CDC類中常用繪圖函數(shù)1)繪制像素函數(shù)原型:COLORREFSetPixel(intx,inty,COLORREFcrColor);設置某像素點的RGB值2)獲取像素顏色函數(shù)原型:COLORREFGetPixel(intx,inty)const;返回值:指定像素的RGB值。參數(shù)說明:得到指定像素的RGB顏色值一、畫筆函數(shù)畫筆是用來繪制直線、曲線或圖形的邊界線,是繪圖工具類之一畫筆通常具有線型、寬度和顏色三種屬性畫筆的線型通常有實線、虛線、點線、點劃線、雙點劃線、不可見線和內(nèi)框架線7種,這些線型都是以PS_為前綴的預
定義標
2、識符默認的畫筆是一個像素單位的黑色實線要想更換畫筆,可以在創(chuàng)建新畫筆對象后,將其選入設備上下文,就可使用新畫筆進行繪圖。1)創(chuàng)建畫筆函數(shù)原型:BOOLCreatePen(intnPenStyle,intnWidth,COLORREFcrColor);返回值:非零。參數(shù)說明:第一個參數(shù)nPenStyle是畫筆的風格代碼第二個參數(shù)nWidth是畫筆的寬度第三個參數(shù)crColor是畫筆的顏色。PS_SOLID;實線;寬度任意指定PS_DASH;虛線;寬度1(不可任意指定)PS_DOT;點線;寬度1(不可任意指定)PS_DASHDOT;點劃線;寬度1(不可
3、任意指定)PS_DASHDOTDOT;雙點畫線;寬度1(不可任意指定)PS_NULL;不可見線;寬度1(不可任意指定)PS_INSIDEFRAME;內(nèi)框架線;寬度任意指定2)選擇畫筆函數(shù)原型:Cpen*SelectObject(Cpen*pPen);返回值:被替代畫筆的指針。參數(shù)說明:參數(shù)pPen是Cpen類的被選中的新畫筆對象指針。本函數(shù)把原畫筆換成新畫筆,同時返回指向原畫筆的指針。
3)刪除畫筆函數(shù)原型:BOOLDeleteObject();返回值:非零。參數(shù)說明:畫筆使用完畢,把已成自由狀態(tài)的畫筆從系統(tǒng)內(nèi)存中清除。4)選擇一支庫畫筆函數(shù)原型:
4、virtualCGdiObject*SelectStockObject(intnIndex);返回值:被替代的CGdiObject類對象的指針。參數(shù)說明:參數(shù)nIndex是庫筆代碼Windows系統(tǒng)中準備了一些使用頻率較高的畫筆,不需要創(chuàng)建,可以直接選用。同樣,使用完庫畫筆時也不需要調(diào)用
DeleteObject()函數(shù)從內(nèi)存中刪除已使用過的畫筆。三種常用庫筆:BLACK_PEN寬度為1的黑筆實線筆;WHITE_PEN寬度為1的白筆實線筆;NULL_PEN透明筆二、畫刷函數(shù)(圖形內(nèi)部進行填充)1)創(chuàng)建實體畫刷函數(shù)BOOLCreateSolidBru
5、sh(COLORREFcrColor);選擇畫刷函數(shù)2)CBrush*SelectObject(CBrush*pBrush);刪除畫刷函數(shù)3)BOOLDeleteObject();創(chuàng)建陰影畫刷函數(shù)4)BOOLCreateHatchBrush(intnIndex,COLORREFcrColor);第一個參數(shù)nIndex是陰影樣式代碼第二個參數(shù)crColor是陰影線的顏色5)選擇一只庫畫刷函數(shù)virtualCGdiObject*SelectStockObject(intnIndex);參數(shù):LTGRAY_BRUSH:亮灰色畫刷;BLACK_BRUSH黑
6、色畫刷;NULL_BRUSH:空畫刷(相當于HOLLOW_BRUSH);WHITE_BRUSH:白色畫刷;DKGRAY_BRUSH深灰色畫刷;GRAY_BRUSH灰色畫刷;HOLLOW_BRUSH中空畫刷三、繪制矩形函數(shù)原型:BOOLRectangle(intx1,inty1,intx2,inty2);返回值:非零。參數(shù)說明:該函數(shù)使用當前畫刷填充矩形內(nèi)部,并用當前畫筆繪制矩形邊界線。CPenMyPen,*OldPen;MyPen.CreatePen(PS_SOLID,1,RGB(0,0,255));OldPen=pDC->SelectObject
7、(&MyPen);CBrushMyBrush,*OldBrush;MyBrush.CreateSolidBrush(RGB(255,0,0));OldBrush=pDC->SelectObject(&MyBrush);pDC->Rectangle(100,100,600,300);//畫矩形pDC->SelectObject(OldPen);//畫框線為藍色MyPen.DeleteObject();pDC->SelectObject(OldBrush);//填充為紅色MyBrush.DeleteObject();坐標映射:MM_TEXT每個邏輯單位
8、等于一個設備像素,x向右為正,y向下為正MM_HIENGLISH每個邏輯單位為0.001英寸,x向右為正,y向上為正MM_