资源描述:
《使用点刷子笔进行绘图》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2.3使用点,刷子,笔进行绘图在Windows中画点的方法很简单,只需要调用COLORREFCDC::SetPixel(intx,inty,COLORREFcrColor)就可以在指定点画上指定颜色,同时返回原来的颜色。COLORREFCDC::GetPixel(intx,inty)可以得到指定点的颜色。在Windows中应该少使用画点的函数,因为这样做的执行效率比较低。刷子和画笔在Windows作图中是使用最多的GUI对象,本节在讲解刷子和画笔使用方法的同时也讲述一写基本作图函数。在画点或画线时系统使用当前DC中的画笔,所以在创建画笔后必须将
2、其选入DC才会在绘图时产生效果。画笔可以通过CPen对象来产生,通过调用CPen::CreatePen(intnPenStyle,intnWidth,COLORREFcrColor)来创建。其中nPenStyle指名画笔的风格,可取如下值:·PS_SOLID实线 Createsasolidpen.·PS_DASH虚线,宽度必须为一 Createsadashedpen.Validonlywhenthepenwidthis1orless,indeviceunits.·PS_DOT点线,宽度必须为一 Createsadottedpen.V
3、alidonlywhenthepenwidthis1orless,indeviceunits.·PS_DASHDOT点划线,宽度必须为一 Createsapenwithalternatingdashesanddots.Validonlywhenthepenwidthis1orless,indeviceunits.·PS_DASHDOTDOT双点划线,宽度必须为一 Createsapenwithalternatingdashesanddoubledots.Validonlywhenthepenwidthis1orless,indevice
4、units.·PS_NULL空线,使用时什么也不会产生 Createsanullpen.·PS_ENDCAP_ROUND结束处为圆形 Endcapsareround.·PS_ENDCAP_SQUARE结束处为方形 Endcapsaresquare.nWidth和crColor为线的宽度和颜色。刷子是在画封闭曲线时用来填充的颜色,例如当你画圆形或方形时系统会用当前的刷子对内部进行填充。刷子可利用CBrush对象产生。通过以下几种函数创建刷子:·BOOLCreateSolidBrush(COLORREFcrColor);创建一种固定颜色
5、的刷子·BOOLCreateHatchBrush(intnIndex,COLORREFcrColor);创建指定颜色和网格的刷子,nIndex可取以下值:·HS_BDIAGONAL Downwardhatch(lefttoright)at45degrees·HS_CROSS Horizontalandverticalcrosshatch·HS_DIAGCROSS Crosshatchat45degrees·HS_FDIAGONAL Upwardhatch(lefttoright)at45degrees·HS_HORIZONTAL
6、 Horizontalhatch·HS_VERTICAL Verticalhatch·BOOLCreatePatternBrush(CBitmap*pBitmap);创建以8*8位图为模板的刷子在选择了画笔和刷子后就可以利用Windows的作图函数进行作图了,基本的画线函数有以下几种·CDC::MoveTo(intx,inty);改变当前点的位置·CDC::LineTo(intx,inty);画一条由当前点到参数指定点的线·CDC::BOOLArc(LPCRECTlpRect,POINTptStart,POINTptEnd);画弧线·C
7、DC::BOOLPolyline(LPPOINTlpPoints,intnCount);将多条线依次序连接基本的作图函数有以下几种:·CDC::BOOLRectangle(LPCRECTlpRect);矩形·CDC::RoundRect(LPCRECTlpRect,POINTpoint);圆角矩形·CDC::Draw3dRect(intx,inty,intcx,intcy,COLORREFclrTopLeft,COLORREFclrBottomRight);3D边框·CDC::Chord(LPCRECTlpRect,POINTptStart,P
8、OINTptEnd);扇形·CDC::Ellipse(LPCRECTlpRect);椭圆形·CDC::Pie(LPCRECTlpRect,POINTp