CPen(Int style,int width ,COLORREF color);
style:畫筆的樣式
width:畫筆的寬度
color:畫筆的顏色(顏色用RGB值來描述)
1.CPen類構造函式該類共重載了3個構造函式;
CPen( );
CPen(int nPenStyle, int nWidth, COLORREF crColor);
throw(CResourceException);
CPen(int nPenStyle, int mWidth, const LOGVRUSH* pLogBrush, int nStyleCount=0, const DWORD* lpStyle=NULL);
throw(CResourceException);
參數nPenStyle的值
參數值 注釋
PS_SOLID 創建一個實線畫筆
PS_DASH 創建一個虛線畫筆,該值只有當畫筆寬度等於1個設備單位或更小時才有效
PS_DOT 創建一個點線畫筆,該值只有當畫筆寬度等於1個設備單位或更小時才有效
PS_DASHDOT 創建一個點和虛線交替畫筆,該值只有當畫筆寬度等於1個設備單位或更小時才有效
PS_DASHDOTDOT 創建一個雙點線畫筆,該值只有當畫筆寬度等於1個設備單位或更小時才有效
PS_NULL 創建一個空線畫筆
PS_INSIDEFRAME 創建一個內框線畫筆,該畫筆可以在WindowsGDI輸出函式定義的矩形邊界所生成的封閉形狀的框線內繪製直線
PS_GEOMETRIC 創建一個幾何畫筆
PS_COSMETIC 創建一個裝飾畫筆
PS_ALTERNATE 創建一個設定其他像素的畫筆
PS_USERSTYLE 創建一個使用由用戶提供的風格矩陣的畫筆
PS_ENDCAP_ROUND 尾帽為圓形的
PS_ENDCAP_SQUARE 尾帽為方形的
PS_ENDCAP—FLAT 尾帽為平坦的
PS_JOIN_BEVEL 成尖角連線
PS_JOIN_MITET 通過setMiterLimit函式設定的當前極限值範圍內斜接;否則,成尖角連線
PS_JOIN_ROUND 成圓角連線
參數pLogBrush指向一個LOGBRUSH結構。該結構原型聲明如下:
typedef struct tag LOGBRUSH{ /*lb*/
UINT lbStyle;
COLORREF lbColor;
LONG lbHatch;
}LOGBRUSH;
該結構定義了一個畫刷的風格、顏色和陰影線種類。
畫刷的風格值
參數值 說明
BS_dibPATTERN 由設備無關的點陣圖定義的圖形畫刷。如果該參數值為該值,則成員lbHatch包含了一個被壓縮的DIB句柄
BS_DIBPATTERNPT 由設備無關的點陣圖定義的圖形畫刷。如果該參數值為該值,則成員lbHatch包含了一個被壓縮的DIB指針
BS_HATCHED 陰影線畫刷
BS_HOLLOW 中空畫刷
BS_NULL 與參數值為BS_HOLLOW定義相同的畫刷
BS_PATTERN 由記憶體點陣圖定義的圖形畫刷
BS_SOLID 實畫刷
BS_NULL 與參數值為BS_HOLLOW定義相同的畫刷
BS_PATTERN 由記憶體點陣圖定義的圖形畫刷
BS_SOLID 實畫刷
2、CPen類初始化成員函式
(1)CreatePen( )成員函式其原型聲明如下:
BOOL CreatePen(int nPenStyle,int nWidth,const LOGBRUSH* pLogBrush,int nStyleCount=0,const DWORD*lpStyle=NULL);
(2)CreatePenIndirect( )成員函式的原型聲明如下:
BOOL CreatePenIndirect(LPLOGPEN lpLogPen);
LOGPEN結構的具體定義如下:
typedef struct tagLOGPEN{ // lgpn
UNIT lopnStyle;
POINT lopnWidth;
COLORREF lopnColor;
}LOGPEN;
可以使用RGB宏來完成顏色設定:
COLORREF RGB(CRED,cGreen,cBlue);
也可以使用COLORREF,其結構為0x00bbggrr。
註:COLORREF實際上就是一個DWORD類型的。所有如果進行顏色傳遞直接按%d格式就可以,不需要格式的轉換。
( XXT: 以上是我從別人的部落格直接摘抄過來的,以供大家學習使用,著作權歸原作者——linger 所有)
3.CPen創建的例子
CPen pen1;
CPen *oldPen;
pen1.CreatePen(PS_SOLID,2,RGB(192,192,192));//創建對象
oldPen = pDC->SelectObject(&pen1);
pDC->MoveTo(10,10);
pDC->LineTo(200,20);
pDC->SelectObject(oldPen);
相關詞條
-
CPen
CPen是繪圖的基本工具,漢語意思是畫筆。
-
OnDraw
);畫筆 CPenCPen類的構造函式:CPen(int style,int...畫筆繪製線條。CPen* SelectObject(CPen* pPen...恢復原畫筆。即在程式中應有如下代碼:CPen newPen...
-
GetCurrentPen
介紹類: CDC頭檔案:afxwin.h功能:獲得當前選擇的CPen 對象的指針。語法:CPen *GetCurrentPen () const; 返回值:如果調用成功則返回CPen 對象的指針;否則返回NULL...
介紹 示例 -
MFC[C語言的圖形化界面語言]
HPENCGdiObject類,CPen和CPen-derived classes刷子...
定義 MFC和Win32 -
SelectObject
介紹CPen* SelectObject( CPen* pPen );CBrush* SelectObject( CBrush* pBrush );virtual CFont* SelectObject...
介紹 示例 -
CGdiObject
CGdiObject對象,而是使用某一個派生類如CPen或CBrush創建...
-
CFont
與CPen和CBrush有所不同。為了使用CFont對象,首先構造一個...
-
匈牙利命名法
* pGdiObj;HPEN hPen; CPen* pPen;HBRUSH...
簡介 變數屬性 舉例 總結 反對聲音 -
vc++
; CGdiObject* pGdiObj; HPEN hPen; CPen...
VC++的安裝 VC適用範圍 VC++技術介紹 VC++常用技術術語解釋