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

要如何從程式中照下整個視窗畫面

尚未結案
裝傻
一般會員


發表:11
回覆:14
積分:5
註冊:2005-03-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-04 22:47:55 IP:211.76.xxx.xxx 未訂閱
大大好~ 我想請問一下~ 要如何從程式中照下整個視窗畫面 因為我寫了一個FORM他呼叫了另一個FORM在那有各按鈕 我按下會印出圖片 但是他怎麼印都只印出第二各FORM 我要如何印出底下的FORM內? 前題是我不可以給他四各座標喔 因為我想問看看WIN API有沒有這各功能 因為當我案PRTSCSYSRQ時他卻印的出整個視窗 我該如何做內? 謝謝
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-04 23:54:46 IP:221.169.xxx.xxx 未訂閱
裝傻:參考下面範例:
請注意紅字與藍字區別:
//先設定整理Image1圖像
Image1->Picture = NULL;
Image1->Align = alNone;
Image1->Stretch = false;
//儲存捕捉影像的暫時圖像
Graphics::TBitmap *tempBmp = new Graphics::TBitmap();
HDC hdc = NULL;    //捕捉範圍的長寬
int x, y;
一:
//取得全螢幕的DC handle
hdc = ::GetDC(0);
x = Screen->Width;
y = Screen->Height;
二:
//取得Form1的DC handle
hdc = ::GetWindowDC(Form1->Handle);
x = Form1->Width;
y = Form1->Height;    //創造一相容於裝置的新圖檔,並指派給tmpBmp handle
tempBmp->Handle = ::CreateCompatibleBitmap( hdc, x, y);
//將hdc擷取到的內容複製至tempBmp中
::BitBlt(tempBmp->Canvas->Handle, 0, 0,
         tempBmp->Width, tempBmp->Height,
         hdc, 0, 0, SRCCOPY);
//將tempBmp傳給Image1中
Image1->Picture->Bitmap = tempBmp;
//刪除暫時的tempBmp
delete tempBmp;
請參考!
Andy Chang
------
Andy Chang
裝傻
一般會員


發表:11
回覆:14
積分:5
註冊:2005-03-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-05 09:19:08 IP:60.248.xxx.xxx 未訂閱
謝謝大大的回應 大大的做法其實就是我現在用的方法 取的FORM1的座標照下圖片 送去列印 但是我依職在想我可以不用這方式而照下整個影像嗎? 像PrintScrnSysRqr鍵一樣可以不管視窗的大小照下整個影像 謝謝
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-05 12:00:11 IP:221.169.xxx.xxx 未訂閱
裝傻:你可以試試,但我覺得效果並不好,有時我要按兩次
才有效果!反正原理就是
模擬按下PrintScrnSysRqr鍵一樣可以不管視窗的大小照下整個影像
#include 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  keybd_event(VK_SNAPSHOT, 0, 0, 0); // Windows畫面
  if (Clipboard()->HasFormat(CF_BITMAP))
    Image1->Picture->Bitmap->Assign(Clipboard());
}
請參考!
Andy Chang 發表人 - andychang1690 於 2005/07/05 12:05:30
------
Andy Chang
系統時間:2024-05-04 4:51:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!