TCanvas對象的CopyRect函數可以實現圖象的放大與縮小;即把畫布上的一部分拷貝到另一部分。函數原型如下:
void __fastcall CopyRect(const TRect &Dest, TCanvas* Canvas, const TRect &Source);
Example:
下列的密碼舉例說明 CopyRect 和 BrushCopy 之間的不同。 位元影像表徵圖被載入位元影像而且在 Form1 的帆布上被顯示。 BrushCopy 代替在帆布上刷子表徵圖的顏色為黑色, 當 CopyRect 上的顏色尚未脫離的時候。
Graphics::TBitmap *Bitmap;
TRect MyRect, MyOther;
MyRect = Rect(10,10,100,100);
MyOther = Rect(10,111,100, 201);
Bitmap = new Graphics::TBitmap;
Bitmap->LoadFromFile(//"c:////////windows////////tartan.bmp//");
Form1->Canvas->BrushCopy(MyRect, Bitmap, MyRect, clBlack);
Form1->Canvas->CopyRect(MyOther, Bitmap->Canvas, MyRect);
delete Bitmap;
{
TImage *tImage = new TImage(this);
tImage->Picture->LoadFromFile(sFileName+tPicName);
tImage->Canvas->CopyRect(TRect(0,0,Item_W-3,Item_H*3/4),tImage->Canvas,tImage->Canvas->ClipRect);
tImage->Picture->Bitmap->Width = Item_W-3;
tImage->Picture->Bitmap->Height = Item_H*3/4;
FItem[tTag].Controls[tIdx]->Glyph = tImage->Picture->Bitmap;
delete tImage;
tImage = NULL;
}