2
的一部分,它不能是很難得出唯一指定的位圖的形式,但我不明白爲什麼代碼無法正常工作(我看到了它在一些Delphi例子):繪製位圖C++ Builder的
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中,ERROR標誌被解釋爲「以前的剪輯區域不受影響」。設備應該先配置還是先前的區域被刪除?完成這項任務是否正確?我將在包含此位圖的TImage上使用SetWindowRgn,但TImage不是窗口,因此不具有Handle。請幫助我找出什麼是錯的。
你確定用'bmp-> Handle'屬性嗎?這不應該是'bmp-> Canvas-> Handle'傳遞給'SelectClipRgn'函數嗎? – TLama 2013-03-07 17:49:00
未顯示錯誤,但沒有位圖未被「裁剪」 – kokbira 2013-03-22 12:38:38