画刷的使用

来源:互联网 发布:数据透视表导向 编辑:程序博客网 时间:2024/04/29 14:02
画刷的使用
                                                                                                  -------------------写于12月26号晚

1. 画刷的创建。
CBrush( );
CBrush( COLORREF crColor ); throw( CResouceException );
CBrush( int nIndex, COLORREF crColor );throw( CResouceException );
CBrush( CBitmap* pBitmap );throw( CResouceExecption );
CrColor:指定画刷的前景色(RGB方式)。如果画刷是阴影线型的,则指定阴影线的颜色。
NIndex:指定画刷阴影线采用的风格,取值如下:
HS_BDIAGONAL45度的向下影线(从左到右)
HS_CROSS水平和垂直方向以网格线作出阴影
HS_DIAGCROSS 45度的网格线阴影
HS_FDIAGONAL 45度的向上阴影线(从左到右)
HS_HORIZONTAL  水平的阴影线
HS_VERTICAL  垂直的阴影线
pBitmap指向CBitmap对象的指针,该对象指定了画刷要绘制的位图。该位图应该是已经用CBitmap::CreateBitmap、CBitmap::CreateBitmapIndirect、CBitmap::LoadBitmap或CBitmap::CreateCompatiableBitmap建立或加载的位图。填充模式下的位图的最小尺寸为8像素×8像素。
 
CBrush brush(RGB(199,199,199)) ;
//CBrush brush(0x00bbggrr);
//CBrush brush(HS_CROSS,RGB(0,255,255));
pDC->SelectObject(&brush);
pDC->Rectangle(0,0,200,200);
 
2. BOOL CreateBrushIndirect( const LOGBRUSH* lpLogBrush ):
lpLogBrush指向LOGBRUSH结构的指针,结构中记录了画刷的相关信息。
 
         typedef struct tagLOGBRUSH { // lb 
   UINT     lbStyle; 
   COLORREF lbColor; 
   LONG     lbHatch; 
} LOGBRUSH;
 
假如 lbStyle 是 BS_HOLLOW or BS_PATTERN , lbColor无效
假如 lbStyle 是 BS_SOLID or BS_HOLLOW, lbHatch 无效.
可以用int GetLogBrush( LOGBRUSH*  pLogBrush );函数来取得已经创建画刷的信息。
API函数:
         HBRUSH CreateBrushIndirect(
          CONST LOGBRUSH *lplb   // pointer to structure describing brush
);
 
HBRUSH hBrush;
LODBRUSH logBrush;
logBrush. LbStyle = BS_HATCHED;
logBrush. LbColor = RGB(255,0,0);
logBrush. LbHatch = HS_HORIZONTAL;
    hBrush = :: CreateBrushIndirect(&logBrush);
 
3. BOOL CreateHatchBrush( int nIndex, COLORREF crColor );
nIndex指定画刷的阴影线风格。可取的值如下:
 HS_BDIAGONAL 45度的向下影线(从左到右)
 HS_CROSS  水平和垂直方向以网格线作出阴影
 HS_DIAGCROSS45度的网格线阴影
 HS_FDIAGONAL45度的向上阴影线(从左到右)
 HS_HORIZONTAL  水平的阴影线
 HS_VERTICAL  垂直的阴影线
CrColor:指定画刷的前景色(RGB形式的值),就是阴影的颜色。
API函数:
HBRUSH CreateHatchBrush(
  int fnStyle,      // hatch style
  COLORREF clrref   // color value
);
4. BOOL CreatePatternBrush( CBitmap* pBitmap );
PBitmap:指定一个位图。
API函数:
HBRUSH CreatePatternBrush(
  HBITMAP hbmp   // handle to bitmap
);
 
5. BOOL CreateSolidBrush( COLORREF crColor );
crColor指定画刷颜色的一个COLORREF结构。
API函数
HBRUSH CreateSolidBrush(
  COLORREF crColor   // brush color value
);
6. BOOL CreateSysColorBrush( int nIndex );
nIndex指定阴影线画刷的风格。可能的取值如下:
 HS_BDIAGONAL45度的向下影线(从左到右)
 HS_CROSS水平和垂直方向以网格线作出阴影
 HS_DIAGCROSS45度的网格线阴影
 HS_FDIAGONAL45度的向上阴影线(从左到右)
 HS_HORIZONTAL水平的阴影线
HS_VERTICAL垂直的阴影线
0 0