2006年02月20日

描画を用いた簡単なサンプル

描画を用いた簡単なサンプル

 それでは、描画の処理を用いた簡単なサンプルを見て行きましょう(GraphicsTest.zip)。今回のサンプルでは、以下の処理を行います。

1. 背景の塗りつぶし
2. 直線の描画
3. 楕円(円)の描画
4. 文字の描画

 サンプルをダウンロードしていただき、これまでと同様にビルドしていいただければ、エミュレータ上で次のようなアイコンが表示されていると思います(画面1)。


 このアプリケーションを実行すると、次のような画面になります(画面2)。


 さらにメニューから「背景色の変更」を選択すると、次のような画面になります(画面3)。


サンプルコードの確認

 描画の処理を行っているコードはGraphicsTestContainerクラスのDraw関数に記載されています。それでは、この関数の中で行われている処理を見て行きましょう。まずは、関数の処理の先頭に

void CGraphicsTestContainer::Draw(const TRect& aRect) const
{
CWindowGc& gc = SystemGc();

と書かれていると思います。これはこのアプリケーションがもっている(主に液晶画面描画用の)グラフィックスコンテキストを取得してくる部分です。SystemGC関数自体はCcoeControlクラスに定義されている関数です。

 この次には、背景や直線、楕円(円)の描画の処理が続きます。こちらの部分に関しては、コードを追っていただければ特に説明は要らないと思います。

// 背景色を現在の色に設定する。
gc.SetBrushColor( bgColor );
gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
gc.DrawRect( aRect );

// 直線を描画する
gc.SetPenColor( KRgbGreen );
gc.SetPenStyle( CGraphicsContext::ESolidPen );
gc.DrawLine( TPoint(10,10), TPoint(100,100 ) );
gc.SetPenStyle( CGraphicsContext::ENullPen );

// 描画モードを変更する。
gc.SetDrawMode( CGraphicsContext::EDrawModeOR );
gc.SetBrushColor( KRgbRed );
gc.DrawEllipse( TRect(50,50,150,150 ) );
gc.SetDrawMode( CGraphicsContext::EDrawModePEN );

-----
補足:通常の描画用APIと同様に、左上端が原点(0,0)です。

 また、楕円(円)の描画部分に関しては、描画モードをビットのORをとるように設定している点にもご注意ください。
posted by シンビアン at 10:11| Comment(0) | TrackBack(0) | Series60プログラミングテクニック | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/13500101

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。