抓取自己本身的Form畫面會產生多餘的影像 |
缺席
|
huntfox
一般會員 發表:11 回覆:13 積分:4 註冊:2006-10-23 發送簡訊給我 |
<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 發送簡訊給我 |
<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 發送簡訊給我 |
<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)); 就可以了 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |