GDI画刷和CBrush类

    xiaoxiao2022-07-06  217

    MFC画刷又三种基本类型:单色,带阴影线和带图案,只要将COLORREF的值传递给CBrush构造函数就可以创建一个单色画刷了; CBrush brush(RGB(255,0,0)); 或者可以创建一个没有初始化的CBrush对象,然后调用CBrush::CreateSolidBrush,用两步创建一个单色画刷: CBrush brush; brush.CreateSolidBrush(RGB(255,0,0)); 这两个方法创建的颜色都是亮红的单色画刷; 还可以通过将LOGBRUSH初始化调用CBrush::CreateBrushIndirect来创建画刷;和CPen构造函数一样,如果GDI内存不足所有创建画刷的CBrush构造函数都会产生资源异常问题,因而也就不能创建画刷了; 将阴影线索引索引和COLORREF值传送给CBrush的构造函数或调用CBrush::CreateHatch-Brush都能创建一个阴影画刷,语句: CBrush brush(HS_DIAGCROSS,RGB(255,0,0)); 创建的阴影线画刷与下面语句创建相同,其阴影线是由倾斜45度的垂直相交线构成的: CBrush brush; brush.CreateHatchBrush(HS_DIAGCROSS,RGB(255,0,0)); dc. SelectObject(&brush); dc.SetBkColor(RGB(192,192,192)); dc.Rectangle(0,0,100,100); 画了一个100 *100单位的正方形,并在浅灰色背景下填充白色的交叉线。语句 CBrush brush(HS_DIAGCROSS,RGB(0,0,0)); dc.SelectObject(&brush); dc.SetBkMode(TRANSPARENT); dc.Rectangle(0,0,100,100); 在当前的背景下画了一个填充着黑色交叉线的矩形;

    最新回复(0)