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;
}
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;
}
本文详细介绍了TCanvas对象的CopyRect函数,该函数能够实现在画布上复制图像区域来达到放大或缩小的效果。通过示例代码展示了CopyRect与BrushCopy的区别,并提供了具体的使用场景。
2769

被折叠的 条评论
为什么被折叠?



