代码改变世界

CBrush,CFont,CPen

2011-04-20 21:19  Clingingboy  阅读(1442)  评论(0编辑  收藏  举报

 

一.CBrush创建方法

1.CreateSysColorBrush

Creates a brush that is the default system color.

CBrush brush;
brush.CreateSysColorBrush(COLOR_BTNFACE);

2.CreateSolidBrush
Initializes a brush with the specified solid color.

CBrush brush;
brush.CreateSolidBrush(RGB(255,0,0));

3.CreatePatternBrush(ImageBrush)
Initializes a brush with a pattern specified by a bitmap.

WORD HatchBits[8] = { 0x11, 0x22, 0x44, 0x88, 0x11,
   0x22, 0x44, 0x88 };

// Use the bit pattern to create a bitmap.

CBitmap bm;
bm.CreateBitmap(8,8,1,1, HatchBits);

// Create a pattern brush from the bitmap.

CBrush brush;
brush.CreatePatternBrush(&bm);

4.CreateHatchBrush(阴影图案)
Initializes a brush with the specified hatched pattern and color.

CBrush brush;
brush.CreateHatchBrush(HS_BDIAGONAL, RGB(255, 0, 0));

image

5.CreateBrushIndirect(传入一个结构体)

LOGBRUSH logBrush;
logBrush.lbStyle = BS_HATCHED;
logBrush.lbColor = RGB(0, 192, 192);
logBrush.lbHatch = HS_CROSS;

// Declare an uninitialized CBrush ...

CBrush brush;
// ... and initialize it with the LOGBRUSH.

brush.CreateBrushIndirect(&logBrush);

二.CFont创建方法

1.CreatePointFont

This function provides a simple way to create a font of a specified typeface and point size.

m_pCFont = new CFont();
m_pCFont->CreatePointFont(90,_T("Tahoma"));

2.CreateFontIndirect

Initializes a CFont object with the characteristics given in a LOGFONT structure.

m_pCFont = new CFont();
m_pCFont->CreatePointFont(90,_T("Tahoma"));

// Initialize font
LOGFONT    LogFont;
m_pCFont->GetLogFont(&LogFont);
LogFont.lfWeight = FW_HEAVY;
m_pCFont->DeleteObject();
m_pCFont->CreateFontIndirect(&LogFont);

三.CPen使用方法

1.CreatePen

CPen myPen1, myPen2;

// Create a solid red pen of width 2.

myPen1.CreatePen(PS_SOLID, 2, RGB(255,0,0));

// Create a geometric pen.

LOGBRUSH logBrush;
logBrush.lbStyle = BS_SOLID;
logBrush.lbColor = RGB(0,255,0);
myPen2.CreatePen(PS_DOT|PS_GEOMETRIC|PS_ENDCAP_ROUND, 2, &logBrush);  

2.CreatePenIndirect

LOGPEN logpen;
CPen   cMyPen;

// Get the LOGPEN of an existing pen.

penExisting.GetLogPen(&logpen);

// Change the color to red and the width to 2.

logpen.lopnWidth.x = 2;
logpen.lopnColor = RGB(255, 0, 0);

// Create my pen using the new settings.

cMyPen.CreatePenIndirect(&logpen);