在Form1繪製甜甜圈圖案 |
尚未結案
|
kung
一般會員 ![]() ![]() 發表:4 回覆:8 積分:2 註冊:2003-11-04 發送簡訊給我 |
|
JerryKuo
版主 ![]() ![]() ![]() ![]() ![]() 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
你好: 要畫在Form上,請參考下面的程式
Graphics::TBitmap* bmp=new Graphics::TBitmap; .......//在此處將甜甜圈的影像資料,放到bmp裡; .......//記得設定 bmp->Transparent = true; 這樣才有空心的效果; // { 如果要並列顯示,請加上這一段,不然就只要Canvas->Draw(x, y, // bmp),x,y是要秀出的位置; int w(b->Width); int h(b->Height); for (int y(0); y < Height; y = h) { for (int x(0); x < Width; x = w) { Canvas->Draw(x, y, bmp); } } // } delete bmp;因為不會用 CreateEllipticRgn、CombineRgn等API函式製作一個甜甜圈區域 (HRGN),我只能提供上述的方法。方便的話,教一下怎麼做HRGN() 發表人 - jerrykuo 於 2003/11/10 11:02:18 |
kung
一般會員 ![]() ![]() 發表:4 回覆:8 積分:2 註冊:2003-11-04 發送簡訊給我 |
引言: 因為不會用 CreateEllipticRgn、CombineRgn等API函式製作一個甜甜圈區域 (HRGN),我只能提供上述的方法。方便的話,教一下怎麼做HRGN()jerrykuo, 謝謝您的指導,小可仍無頭緒。 HRGN的取得,是我在一本BCB與WinAPI範例集的書上得知的,如後: //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { HRGN MyRgn; //甜甜圈區域範圍 HRGN hRgn1 = ::CreateEllipticRgn(0, 0, 200, 200); HRGN hRgn2 = ::CreateEllipticRgn(20, 20, 180, 180); //再結合此兩個橢圓形位置與範圍,即為甜甜圈區域 ::CombineRgn(MyRgn,hRgn1,hRgn2,RGN_XOR); //這裡就是要處理的地方... //完成繪出戒指後,逐一釋放區域物件 ::DeleteObject(hRgn1); ::DeleteObject(hRgn2); ::DeleteObject(MyRgn); } //--------------------------------------------------------------------------- |
JerryKuo
版主 ![]() ![]() ![]() ![]() ![]() 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
Graphics::TBitmap *Bmp = new Graphics::TBitmap(); // 請載入原始圖; void __fastcall TForm1::ButtonClick(TObject *Sender) { Graphics::TBitmap* bmp1=new Graphics::TBitmap; byte *ptr1,*ptr2; RECT R; HRGN MyRgn = ::CreateEllipticRgn(0, 0, Bmp->Width, Bmp->Height); //甜甜圈區域範圍; HRGN hRgn1 = ::CreateEllipticRgn(0, 0, 200, 200); HRGN hRgn2 = ::CreateEllipticRgn(20, 20, 180, 180); //再結合此兩個橢圓形位置與範圍,即為甜甜圈區域; ::CombineRgn(MyRgn,hRgn1,hRgn2,RGN_XOR); bmp1->PixelFormat = pf24bit; bmp1->Width = Bmp->Width; bmp1->Height = Bmp->Height; bmp1->Transparent = true; for(int y=0;yTry it~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |