TPaintBox グラフィック描画領域(VCL)


目次に戻る


しばらく C++Builder のクラスライブラリVCL(Visual Control Library)の紹介をしていこうと思います。
 
最初は TPaintBoxコンポーネント を紹介します。TPaintBoxコンポーネントはコンポーネント一覧の中の「System」の左から2番目あたりに登録されています(デフォルト)。
 
TPaintBoxの主な機能は描画領域を提供すること。
Builderで作るアプリケーション上に絵を描きたい場合Formの上に直接書いても良いのですが、汎用性を考えTPaintBoxを使うのが良いです。
 
サンプルアプリ
  1. C++Builderを起動し、新規アプリケーションを作成してください。
  2. Formの上にTPaintBoxコンポーネントを張り付けます。
  3. 張り付けたPaintBoxの OnPaint イベントに次のようなソースを記述します。
void __fastcall TForm1::PaintBox1Paint(TObject *Sender)
{
   PaintBox1->Canvas->MoveTo( 0, 0 );
   PaintBox1->Canvas->LineTo( 100,100 );
}
PaintBoxが描画領域の内容を記憶しないためPaintBox上にグラフィックを描画するさいはOnPaintイベントにその内容を記述するのが基本です。ButtonのOnClickイベントで上記のようなコードを書いても、フォームを最小化した後などには跡形もなく消えています。
PaintBoxの癖を知る為のサンプルコード
  1. 先ほどのアプリにButtonを一つ追加してください。
  2. 追加したボタンの OnClickイベントに次のコードを記述します。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    PaintBox1->Canvas->MoveTo( 100,0 );
    PaintBox1->Canvas->LineTo( 0,100 ); 
}


目次に戻る