全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1093
推到 Plurk!
推到 Facebook!

抓取自己本身的Form畫面會產生多餘的影像

缺席
huntfox
一般會員


發表:11
回覆:13
積分:4
註冊:2006-10-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-07-13 14:01:56 IP:140.123.xxx.xxx 訂閱
<textarea class="cpp" rows="10" cols="60" name="code"> void __fastcall TForm1::Button1Click(TObject *Sender) { Image1->Width = 342; Image1->Height = 342; SendMessage(Form1->Handle, WM_VSCROLL, SB_PAGEDOWN, 0); Image1->Canvas->CopyMode = cmSrcCopy; Image1->Canvas->CopyRect(Rect(0, 0, Image1->Width, Image1->Height), Form1->Canvas, Rect(0, 0, Form1->Width, Form1->Height)); Image1->Picture->Bitmap->SaveToFile("Image1.bmp"); } </textarea> 上面的程式是根據RaynorPao大大提供的程式碼去寫的 問題: Image上抓到的Form畫面在右邊跟下方都會多抓一些影像下來 那些影像是抓取Form畫面時並沒有抓取Form caption那一條藍色的區域 所以會多抓下面跟右邊多餘的畫面 有大大知道該怎樣解決這個問題嗎
huntfox
一般會員


發表:11
回覆:13
積分:4
註冊:2006-10-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-07-13 14:15:36 IP:140.123.xxx.xxx 訂閱
<textarea class="cpp" rows="10" cols="60" name="code"> void __fastcall TForm1::Button1Click(TObject *Sender) { Image1->Width = 320; Image1->Height = 300; SendMessage(Form1->Handle, WM_VSCROLL, SB_PAGEDOWN, 0); Image1->Canvas->CopyMode = cmSrcCopy; Image1->Canvas->CopyRect(Rect(0, 0, Image1->Width, Image1->Height), Form1->Canvas, Rect(0, 0, Form1->Width-4, Form1->Height-30)); Image1->Picture->Bitmap->SaveToFile("Image1.bmp"); } </textarea> 我把程式碼做兩個地方的修改: Form1->Width-4 Form1->Height-30 發現就不會抓到Form外面多餘的影像 但是這樣的做法我覺得並不好 有沒有大大有較好的方式呢 感謝
huntfox
一般會員


發表:11
回覆:13
積分:4
註冊:2006-10-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-07-24 10:06:58 IP:140.123.xxx.xxx 訂閱
<textarea class="cpp" rows="10" cols="60" name="code"> void __fastcall TForm1::Button1Click(TObject *Sender) { Image1->Width = 320; Image1->Height = 300; SendMessage(Form1->Handle, WM_VSCROLL, SB_PAGEDOWN, 0); Image1->Canvas->CopyMode = cmSrcCopy; Image1->Canvas->CopyRect(Rect(0, 0, Image1->Width, Image1->Height), Form1->Canvas, Rect(0, 0, Image1->Width, Image1->Height)); Image1->Picture->Bitmap->SaveToFile("Image1.bmp"); } </textarea>
後來我想一想發現 只要改成 Image1->Canvas->CopyRect(Rect(0, 0, Image1->Width, Image1->Height), Form1->Canvas, Rect(0, 0, Image1->Width, Image1->Height)); 就可以了
系統時間:2024-05-04 7:28:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!