在TCanvas上画图
将一幅bmp图片,从文件中加载到窗口的TCanvas上去,代码如下:
::Graphics::TBitmap *bmp= new ::Graphics::TBitmap;bmp->Transparent = true;//是否透明bmp->LoadFromFile("right1.bmp");Canvas->Draw(0,0,bmp);delete bmp;
在TCanvas上画背景透明的文字,代码如下:
Image1->Canvas->Font->Color = clRed; //文字颜色Image1->Canvas->Brush->Style = bsClear;//文字区域透明Image1->Canvas->TextOutA(20,0,"大家好");
在TCanvas上画矩形,矩形区域透明
Image1->Canvas->Brush->Style = bsClear;Image1->Canvas->Rectangle(51,0,78,28);
在TCanvas上画图后,想擦除刚画的图形,代码如下:
Image1->Canvas->Pen->Mode = pmNotXor ;Image1->Canvas->Pen->Color = clBlue;Image1->Canvas->Pen->Style = psSolid;Image1->Canvas->Pen->Width = 1;
将上述代码执行第二次时,擦除第一次所画图形。
在内存中画图,复制到其他的TCanvas上
void __fastcall TForm1::Button1Click(TObject *Sender)
{::Graphics::TBitmap *bmp = new ::Graphics::TBitmap;bmp->Width = 100;bmp->Height= 100;bmp->Canvas->Pen->Color = clRed;bmp->Canvas->Ellipse(0,0,100,100);TRect a(0,0,200,200);TRect b(0,0,200,200);//复制位图bmp到窗口画布上,clBlack是透明色,即位图中将要被透过的颜色,与位图背景色相同Canvas->BrushCopy(a, bmp, b, clBlack);//Image1->Picture->Bitmap->Assign(bmp);//后面屏蔽的这几句功能相似。//Image1->Picture->Bitmap=bmp;Canvas->CopyMode = SRCCOPY;//复制时实现一些运算,SRCCOPY是直接复制,无运算Canvas->CopyRect(a,bmp->Canvas,b); //API函是实现复制位图//BitBlt(this->Canvas->Handle,0,0,100,100,bmp->Canvas->Handle,0,0,SRCCOPY);
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
