基本绘图函数的使用

来源:互联网 发布:算法初步 编辑:程序博客网 时间:2024/04/27 15:26
 设置好CGraphicsContent后,我们就可以通过调用相关方法在窗口中绘制图形。

1文本:

void DrawText(const TDesC& aText,const TPoint& aPosition)
void DrawText(const TDesC& aText,const TRect& aBox,TInt aBaselineOffset, TTextAlign aAlignment=ELeft,TInt aLeftMargin=0)
其中第一个直接在窗口中绘制文本,其中aText给出来要绘制的文本内容,aPosition制定了要绘制文本的起始位置。
第二个在绘制文本的同时,还要以给定的aBox绘制一个矩形外框。aAlignment参数指定了文本的对齐方向,默认为左对齐;aLeftMargin指定了间隔距离,默认值为0。
由于Symbian系统的内存受限制,所以,没有使用的字体系统是不会调入内存的,因此我们在绘制文本前,应该首先使用UseFont()设置系统的字体:
void UseFont(const CFont* aFont)
这样系统会将字体调入内存中。
在我们不使用这个字体以后,为了节省内存,要使用DiscardFont()释放掉内存中的字体。
void DiscardFont()

2点:

我们通过Plot()来绘制一个单独的点。点的绘制模式与当前的画笔(Pen)设置相同。void Plot(const TPoint& aPoint)
当画笔的宽度大于一个像素的时候,系统会以aPoint为圆心,画笔的宽度为直径绘制一个圆,并用画笔的颜色填充这个圆。

3线:

绘制直线的方法有DrawLine() DrawLineBy() DrawLineTo()DrawPolyLine()DrawArc(),绘制模式与当前的画笔(Pen)设置相同。
void DrawLine(const TPoint& aPoint1,const TPoint& aPoint2)
DrawLine()在aPoint1aPonit2之间绘制一条直线。
void DrawLineTo(const TPoint& aPoint)
DrawLineTo()从当前点向aPoint绘制一条直线。
void DrawLineBy(const TPoint& aVector)
DrawLineBy()从当前点向相对当前点位置为aVector的点绘制一条直线。
void DrawPolyLine(const CArrayFix<TPoint>* aPointList)
DrawPolyLine()根据给定的位置数组从第一个点开始向第二个点绘制直线,然后以第二个点为起始点向第三个点绘制直线。。。。。。直到最后一个点。
在这里需要注意的一点是,在绘制直线的时候,系统并不绘制直线的最后一点,如果我们希望绘制一条包括最后一点的直线,我们可以使用上边的Plot()方法绘制最后一个点。

4图形:

我们可以使用系统提供的方法直接绘制五种简单图形,分别是矩形(rectangle)、圆角矩形(rounded rectangle)、多边形(polygon)、椭圆形(ellipse)和饼型(pie slice)。绘制模式和填充模式与当前的画笔(Pen)、刷子(Brush)设置相同
矩形:
void DrawRect(const TRect& aRect)
DrawRect()在屏幕上根据给定的aRect绘制矩形。
圆角矩形:
void DrawRoundRect(const TRect& aRect,const TSize& aCornerSize)
DrawRoundRect()在屏幕上根据给定的aRect绘制矩形,并根据给定的aCornerSize确定圆角的直径。
多边形:
TInt DrawPolygon(const CArrayFix<TPoint>* aPointList,TFillRule aFillRule=EAlternate)
TInt DrawPolygon(const TPoint* aPointList,TInt aNumPoints,TFillRule aFillRule=EAlternate)
DrawPolygon()根据给定的点集aPointList按顺序连接并按照aFillRule规则填充多边形。
椭圆形:
void DrawEllipse(const TRect& aRect)
DrawEllipse()在给定的aRect区域中绘制椭圆形。如果给定的区域是正方形,那么将绘制出圆形。
饼形:
void DrawPie(const TRect& aRect,const TPoint& aStart,const TPoint& aEnd)
DrawPie()通过给定的起始点aStart和结束点aEnd在由aRect形成的椭圆内截取相应的饼型区域。

原创粉丝点击