在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);
}

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部