Panel 重疊 抓到真確的底圖呢? |
尚未結案
|
wsxcv123
一般會員 發表:36 回覆:27 積分:12 註冊:2004-11-10 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 如何讓 Panel1 抓到真確的底圖呢?wsxcv123 你好: 請問?你說的意思是像這個樣子嗎? < class="code"> HDC dc; Graphics::TBitmap *bmp=new Graphics::TBitmap; TCanvas *canvas=new TCanvas; dc=GetDC(Panel1->Handle); canvas->Handle=dc; bmp->Width=Panel1->ClientWidth; bmp->Height=Panel1->ClientHeight; bmp->Canvas->CopyRect(Rect(0, 0, bmp->Width, bmp->Height), canvas, Panel1->ClientRect); bmp->SaveToFile("Panel1.bmp"); delete canvas; ReleaseDC(NULL, dc); delete bmp; -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
wsxcv123
一般會員 發表:36 回覆:27 積分:12 註冊:2004-11-10 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 我想讓 panel1 當按了某個button Panel1 的 background color 為 一半是 panel2 的 color, 另一半是 form 的 color. Panel1 的位子如果變,安了 button 就再重抓 background colorwsxcv123 你好: 那麼,試試看改成這個樣子行不行呢? < class="code"> HDC hDC; TCanvas *canvas=new TCanvas; hDC=GetDC(Panel1->Handle); canvas->Handle=hDC; TRect rect; rect.Left=Panel1->Left; rect.Top=Panel1->Top; rect.Right=rect.Left+Panel1->Width; rect.Bottom=rect.Top+Panel1->Height; Graphics::TBitmap *bmp=new Graphics::TBitmap; bmp->Width=Panel1->Width; bmp->Height=Panel1->Height; Panel1->Hide(); Application->ProcessMessages(); bmp->Canvas->CopyRect(Rect(0, 0, bmp->Width, bmp->Height), this->Canvas, rect); Panel1->Show(); Application->ProcessMessages(); canvas->CopyRect(Rect(0, 0, Panel1->Width, Panel1->Height), bmp->Canvas, Rect(0, 0, bmp->Width, bmp->Height)); delete canvas; ReleaseDC(NULL, hDC); delete bmp; -- Enjoy Researching & Developing -- 發表人 - RaynorPao 於 2004/12/29 00:49:34
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
wsxcv123
一般會員 發表:36 回覆:27 積分:12 註冊:2004-11-10 發送簡訊給我 |
|
xfile
初階會員 發表:21 回覆:80 積分:25 註冊:2004-10-02 發送簡訊給我 |
引言: 執行後,沒什ㄇ變說 底圖還是沒變 >>< face="Verdana, Arial, Helvetica"> 開一個新 form,加上兩個 Panel 和一個 TImage,一個 Button ,在 ButtonClick 事件中加上Graphics::TBitmap *TempBMP = new Graphics::TBitmap ; Panel2->Visible = false ; TRect SourceRect = TRect(Panel2->Left , Panel2->Top ,Panel2->Left Panel2->Width ,Panel2->Top Panel2->Height ); TRect DestRect = TRect(0, 0,Panel2->Width,Panel2->Height ); TempBMP->Width = Panel2->Width ; TempBMP->Height = Panel2->Height ; Image1->Picture->Assign(TempBMP) ; Image1->Canvas->CopyRect(DestRect , Canvas ,SourceRect); Panel2->Visible = true ; delete TempBMP ;把 TImage 擺在 Panel2 裡面,就可以驗證執行結果了 如果要更精確一點的抓圖,就用包大人的 GetDC 來畫吧 發表人 - xfile 於 2005/02/02 17:38:26 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |