C++ MFC画刷CBrush类 |
您所在的位置:网站首页 › mfc绘制图形不填充 › C++ MFC画刷CBrush类 |
画刷其实是一个像素大小为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 |