资源描述:
《VC中brush的几种用法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VC中brush的几种用法2009-05-3123:06HBRUSHhbr;第一种:hbr=CreateSolidBrush(RGB(255,0,0)); //创建单色的画刷第二种:hbr=(HBRUSH)GetStockObject(BLACK_BRUSH); //只能取特定颜色的画刷,如BLACK_BRUSH,GRAY_BRUSH刷第三种:hbr=CreatePatternBrush(HBITMAPhbmp); //得到位图画刷第四种:hbr=CreateHatchBrush(intfnStyle,
2、 //创建一种带阴影的画刷 COLORREFclrref )第五种:hbr=CreateBrushIndirect(LOGBRUSH); //通过LOGBRUSH结构体来取画刷 typedefstructtagLOGBRUSH{ UINT lbStyle;//画刷类型 COLORREFlbColor;//颜色 LONG lbHatch;//阴影}LOGBRUSH
3、,*PLOGBRUSH;第六种:hbr=HBRUSHCreateDIBPatternBrush( //通过与设备无关位图创建一个画刷 HGLOBALhglbDIBPacked,//handletoDIB UINTfuColorSpec //colortabledata );例如:CBrushbrush;brush.CreateHatchBrush(HS_CROSS,RGB(255,0,0));pDC->SelectObject(brush);pDC->Rectangle(400,140,500,160);//水平和垂直交
4、叉的阴影线得到:倘若有多个,则:如:程序为:CBrushbrush;//创建画刷brush.CreateSolidBrush(RGB(255,0,0));//创建填充色画刷CBrush*oldbrush=pDC->SelectObject(&brush);pDC->Rectangle(100,40,200,60);//红pDC->SelectObject(oldbrush);//恢复原来画刷brush.Detach();//将画刷对象与其构造的内容分类里,以便能再次构造画刷brush.CreateSolidBrush(RGB(0,255,0));//重新创建画刷oldbrush=
5、pDC->SelectObject(&brush);pDC->Rectangle(100,90,200,110);//绿pDC->SelectObject(oldbrush);//恢复原来画刷brush.Detach();//将画刷对象与其构造的内容分类里,以便能再次构造画刷brush.CreateSolidBrush(RGB(0,0,255));oldbrush=pDC->SelectObject(&brush);pDC->Rectangle(100,140,200,160);//蓝pDC->SelectObject(oldbrush);//恢复原来画刷例1:编写一个单文档应用
6、程序Li3_7,绘制不同颜色、不同阴影形式的填充矩形。(1)使用MFCAppWizard创建一个单文档应用程序Li3_7。(2)选择项目工作区的ClassView,展开CLi3_7View类,打开其成员函数OnDraw()。(3)在函数OnDraw()中添加代码。如下图的效果:程序:voidCLi3_7View::OnDraw(CDC*pDC){CLi3_7Doc*pDoc=GetDocument();ASSERT_VALID(pDoc);//TODO:adddrawcodefornativedataherepDC->SetTextAlign(TA_CENTER);pDC->Te
7、xtOut(150,10,"用实心画刷绘图");pDC->SetTextAlign(TA_CENTER);pDC->TextOut(450,10,"用阴影画刷绘图");pDC->SetTextAlign(TA_RIGHT);pDC->TextOut(70,40,"红");pDC->SetTextAlign(TA_LEFT);pDC->TextOut(220,40,"45度从右到左阴影线");pDC->SetTextAlign(TA_RIGHT);pDC->TextOut(70,9