線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1267
推到 Plurk!
推到 Facebook!

Panel 重疊 抓到真確的底圖呢?

尚未結案
wsxcv123
一般會員


發表:36
回覆:27
積分:12
註冊:2004-11-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-16 16:25:19 IP:61.222.xxx.xxx 未訂閱
如何讓 Panel1 抓到真確的底圖呢?
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-27 20:53:28 IP:211.20.xxx.xxx 未訂閱
引言: 如何讓 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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-28 13:51:22 IP:61.222.xxx.xxx 未訂閱
我想讓 panel1 當按了某個button Panel1 的 background color 為 一半是 panel2 的 color, 另一半是 form 的 color. Panel1 的位子如果變,安了 button 就再重抓 background color
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-29 00:39:03 IP:211.20.xxx.xxx 未訂閱
引言: 我想讓 panel1 當按了某個button Panel1 的 background color 為 一半是 panel2 的 color, 另一半是 form 的 color. Panel1 的位子如果變,安了 button 就再重抓 background color
wsxcv123 你好: 那麼,試試看改成這個樣子行不行呢? < 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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-29 18:56:11 IP:61.222.xxx.xxx 未訂閱
執行後,沒什ㄇ變說 底圖還是沒變
xfile
初階會員


發表:21
回覆:80
積分:25
註冊:2004-10-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-02-02 17:31:24 IP:220.130.xxx.xxx 未訂閱
引言: 執行後,沒什ㄇ變說 底圖還是沒變 < 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
系統時間:2024-11-25 22:35:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!