C++ MFC画刷CBrush类

您所在的位置:网站首页 mfc绘制图形不填充 C++ MFC画刷CBrush类

C++ MFC画刷CBrush类

#C++ MFC画刷CBrush类| 来源: 网络整理| 查看: 265

画刷其实是一个像素大小为8*8的位图,用多个相同的位图对封闭图形的内部进行填充。 MFC的CBrush类封装了画刷对象,创建画刷时,首先定义一个画刷对象,然后调用CreateSolidBrush、CreateHatchBrush或CreatePatternBrush函数。可以采用下面三种方式创建画刷。 1) 创建单色画刷

BOOL CreateSolidBrush( COLORREF crColor //画刷颜色 );

2) 创建阴影画刷

BOOL CreateHatchBrush( int nIndex, //阴影画刷类型 COLORREF crColor //画刷颜色 );

参数nIndex指定画刷的样式。可以设置的样式如下所示:

HS_BDIAGONAL:表示45度向上,从左至右的阴影(/);HS_CROSS:水平和垂直交叉阴影(+++++);HS_DIAGCROSS:45度交叉阴影(XXXXX);HS_FDIAGONAL:45度向下,自左至右阴影(\\\\\\);HS_HORIZONTAL:水平阴影(-----);HS_VERTICAL:垂直阴影(|||||)。crColor:指定用于阴影的刷子的前景色。

3) 创建按图画刷

BOOL CreatePatternBrush( CBitmap* pBitmap //画刷位图,只使用左上角的8*8大小 ); 示例:使用GDI对象CBrush绘图示例

编写一个程序,练习一下画刷的创建。上面有八种不同风格的画刷。 代码写在前面新建的工程SDITest中,读者可以从网站提供的链接中获取。阅读程序是请参考注释。 1) 定义数据结构

//定义数据结构 struct my_EclipseBrush{ //图形显示区域 CRect rect; //画笔 CBrush brush; }; 2) 定义成员变量 my_EclipseBrush m_myEclipseBrush[8];

3) 在View类中初始化绘图区域

//初始化绘图区域 void CSDITestView::InitRectBrush() { //界面上要显示8个图形,准备好8个区域,分两行显示,每一行显示四个 //图形左右间隔10个像素,上下间隔20个像素 //左上 右下 CRect rect(0,0,100,100); for (int i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3