ホーム
|
アプリケーション | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


Tips >   

PaintBox でイメージを再描画 

更新 : 2009/12/17

 



解説:
PaintBox コンポーネントを使うと、フォームにイメージを描画できます。
イメージは Canvas の表面に描画されているだけなので、他のウィンドウが上に来ると消えてしまいます。そのため OnPaint イベントで再描画させる必要が出てきます。
似たようなコンポーネントに Image がありますが、こちらはオブジェクトにイメージが格納されるので消えることはありません。

PaintBox にイメージを表示させるには、他の Canvas(Image コンポーネントや Bitmap オブジェクト)に表示されているイメージをコピーしなければなりません。

使用例:
今回は、Image コンポーネントに表示した画像を
PaintBox にコピーし、他のウィンドウで邪魔された場合の処理を記述しています。画像はプロジェクトのフォルダに "sample.bmp" として用意しておいてください。

コンポーネントは、 Image, PaintBox, Button を適当に配置します。

コーディングでは、Button1 の OnClick で Image1 に画像を読み込み、表示した画像を PaintBox1 にコピーしています。
OnPaint イベントでは他のウィンドウでイメージが消された場合を考えて、再描画に対応しています。

//-------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
     //イメージファイルをロード
     Image1->Picture->LoadFromFile("sample.bmp");
     //Image1 を PaintBox にコピー
     PaintBox1->Canvas->Draw(0, 0, Image1->Picture->Bitmap);
}
//-------------------------------------------------------------------
void __fastcall TForm1::PaintBox1Paint(TObject *Sender)
{
    //再描画
     PaintBox1->Canvas->Draw(0, 0, Image1->Picture->Bitmap);
}
//-------------------------------------------------------------------



[ ホーム | ページトップ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.