基本繪圖函數的使用

 設置好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形成的橢圓內截取相應的餅型區域。

發佈了14 篇原創文章 · 獲贊 0 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章