WEB开发网
开发学院手机开发Symbian 开发 Symbian OS 控件开发之 CCoeControl 阅读

Symbian OS 控件开发之 CCoeControl

 2010-03-07 19:41:00 来源:WEB开发网   
核心提示:virtual void DrawPolyLine(const TPoint* aPointList, TInt aNumPoints);(2) 实心轮廓图形.这些函数使用画笔和画刷,画笔用来绘制轮廓,Symbian OS 控件开发之 CCoeControl(3),刷子用来填充轮廓内部,virtual void Dra

virtual void DrawPolyLine(const TPoint* aPointList, TInt aNumPoints);

(2) 实心轮廓图形.这些函数使用画笔和画刷,画笔用来绘制轮廓,刷子用来填充轮廓内部。

virtual void DrawPie(const TRect& aRect, const TPoint& aStart, const TPoint& aEnd);

virtual void DrawEllipse(const TRect& aRect);

virtual void DrawRect(const TRect& aRect);

virtual void DrawRoundRect(const TRect& aRect, const TSize& aEllipse);

virtual TInt DrawPolygon(const CArrayFix* aPointList, TFillRule aFillRule = EAlternate);

virtual TInt DrawPolygon(const TPoint* aPointList, TInt aNumPoints, TFillRule aFillRule = EAlternate);

(3) 位图.能够以1:1的比例或者拉伸到所指定矩形区域的大小来绘制位图。

virtual void DrawBitmap(const TPoint& aTopLeft, const CFbsBitmap* aSource);

virtual void DrawBitmap(const TRect& aDestRect, const CFbsBitmap* aSource);

virtual void DrawBitmap(const TRect& aDestRect, const CFbsBitmap* aSource,const TRect& aSourceRect);

(4) 文本.使用当前字体。

virtual void DrawText(const TDesc& aString, const TPoint& aPosition);

virtual void DrawText(const TDesc& aString, const TRect& aBox, TInt aBaselineOffset, TTextAlign aHoriz = ELeft, TInt aLeftMrg = 0);

绘图和重绘:

在GUI程序中,所有的绘图都在控件上完成,绘图是由控件的Draw()函数来完成的,其声明如下virtual void Draw(const TRect& aRect) const;

基类CCoeControl的Draw()为空,因此在编写控件时必须实现该函数,否则控件将不可见。Draw()是由应用程序框架来调用,一般不应在应用程序中直接调用Draw()。控件不只是在初始化绘制它们的外观,而且在它发生变化时或者系统要求重绘(redraw)时进行重绘。按照重绘的触发源来划分,控件的重绘分为两种:系统发起的重绘和应用程序发起的重绘。系统发起的重绘处理从窗口服务器开始,它检测并判断何时需要重绘哪部分窗口。实际上,它维护窗口上的一个无效区域,并向拥有窗口的应用程序发送一个重绘事件,要求它重绘无效区域。应用程序发起的重绘处理由应用程序触发,它可以根据需要采用如下方法来实现(这些函数最终都是通过调用Draw()来实现的):void

上一页  1 2 3 4  下一页

Tags:Symbian OS 控件

编辑录入:coldstar [复制链接] [打 印]
赞助商链接