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

儲存Form

尚未結案
nanaya
一般會員


發表:25
回覆:33
積分:11
註冊:2004-07-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-30 11:23:18 IP:210.202.xxx.xxx 未訂閱
請問 我要怎樣寫才能只儲存目前所開的Form(ex:Form1) 謝謝
andychang1690
資深會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-30 15:42:14 IP:202.104.xxx.xxx 未訂閱
nanaya: 請問你要儲存目前所開的Form的位置, 還是要將裡面的元件存起來? 還是其他? Andy Chang
------
Andy Chang
nanaya
一般會員


發表:25
回覆:33
積分:11
註冊:2004-07-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-30 16:28:47 IP:210.202.xxx.xxx 未訂閱
我想要存整個Form的畫面 謝謝
andychang1690
資深會員


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-30 17:18:14 IP:202.104.xxx.xxx 未訂閱
nanaya:
開一個新Form假設為Form2,上面僅放置Image並設置為alClient
主程式上
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
  TForm2 *Form2;
  try  {
    Form2=new TForm2(Application);
    Form2->Top=this->Top;
    Form2->Width=this->Width;
    Form2->Left=this->Left;
    Form2->Height=this->Height;
    DesktopHWnd = GetDesktopWindow();
    DesktopDC   = GetDC(DesktopHWnd);
    BitBlt(Form2->Image1->Canvas->Handle,  0,0,Form2->Image1->Width,Form2->Image1->Height,
            DesktopDC, Form2->Left, Form2->Top, SRCCOPY);
    Form2->Image1->Refresh();
    ReleaseDC(DesktopHWnd, DesktopDC);
    Form2->Image1->Picture->SaveToFile("A1.Bmp");
    delete Form2;
  }
  catch (...)  {
    delete Form2;
  }
}
OK!畫面存起來了!    
Andy Chang
------
Andy Chang
nanaya
一般會員


發表:25
回覆:33
積分:11
註冊:2004-07-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-30 18:03:27 IP:210.202.xxx.xxx 未訂閱
andychang1690您好, 謝謝您的回應 可以麻煩請你說明下列的程式嗎 DesktopHWnd = GetDesktopWindow(); DesktopDC = GetDC(DesktopHWnd); BitBlt(Form2->Image1->Canvas->Handle, 0,0,Form2->Image1->Width,Form2->Image1->Height, DesktopDC, Form2->Left, Form2->Top, SRCCOPY); Form2->Image1->Refresh(); ReleaseDC(DesktopHWnd, DesktopDC); 真的麻煩你了..謝謝
andychang1690
資深會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-07-30 19:26:35 IP:202.104.xxx.xxx 未訂閱
//獲得桌面窗口的控制碼 DesktopHWnd = GetDesktopWindow(); DesktopDC = GetDC(DesktopHWnd); //複製視窗矩形區域到點陣圖中 BitBlt(Form2->Image1->Canvas->Handle, 0,0,Form2->Image1->Width,Form2->Image1->Height, DesktopDC, Form2->Left, Form2->Top, SRCCOPY); Form2->Image1->Refresh(); ReleaseDC(DesktopHWnd, DesktopDC); 以上明細說明請見BCB Help Windows SDF Andy Chang
------
Andy Chang
nanaya
一般會員


發表:25
回覆:33
積分:11
註冊:2004-07-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-08-02 09:20:09 IP:210.202.xxx.xxx 未訂閱
謝謝andychang1690解說 我是用BCB5 Help裡面沒有Windows SDF 所以好像就沒有控制視窗的控制碼... 請問那還有其它的寫法嗎 謝謝~~
andychang1690
資深會員


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-08-02 10:50:10 IP:219.132.xxx.xxx 未訂閱
我也是用BCB5 我就有Windows SDF Help 不然你到MS$網站查詢 GetDesktopWindow http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/Windows/WindowReference/WindowFunctions/GetDesktopWindow.asp GetDC http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/devcons_4esj.asp ReleaseDC http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/devcons_66hv.asp 請參考 Andy Chang
------
Andy Chang
nanaya
一般會員


發表:25
回覆:33
積分:11
註冊:2004-07-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-08-06 08:36:07 IP:210.202.xxx.xxx 未訂閱
謝謝andychang1690的解答 讓我又學到新的東西
系統時間:2024-11-25 19:32:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!