只绘制指定形式的位图一定不难,但是我不明白为什么该代码不起作用(我在一些 delphi 示例中看到了它):
Graphics::TBitmap* bmp;
void __fastcall TForm1::FormCreate(TObject* Sender)
{
bmp = new Graphics::TBitmap();
bmp->Width = 300;
bmp->Height = 300;
bmp->Canvas->Ellipse(0, 0, 300, 300);
}
void __fastcall TForm1::Button1Click(TObject* Sender)
{
HRGN rgn = CreateRectRgn(10, 10, 30, 30);
if(SelectClipRgn(bmp->Handle, rgn) == ERROR) ShowMessage("Error");
Canvas->Draw(0, 0, bmp);
}
所以位图以通常的方式绘制。在 MSDN 中,错误标志被解释为“以前的剪辑区域不受影响”。应该先配置设备还是删除之前的区域?这是完成这项任务的正确方法吗?我会在包含此位图的 TImage 上使用 SetWindowRgn,但 TImage 不是窗口,因此没有句柄。请帮我找出问题所在。