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

Panel 抓圖

尚未結案
wsxcv123
一般會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-07 10:19:23 IP:61.222.xxx.xxx 未訂閱
我在form 裡放了多個 panel form 的 Vertscrollbar range = 2000 有些 panel 要拉了 scrollbar 才看的到。 如何把 form 的所有 panel 抓成一張圖?
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-08 17:32:53 IP:61.64.xxx.xxx 未訂閱
參考下面的範例    原始視窗圖如下, 共有7個Panel 抓取的結果
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  TImage* ImageBuffer = new TImage(this);
  __try
  {
    ImageBuffer->Width = Width;
    ImageBuffer->Height = Form1->VertScrollBar->Range;
    TRect rect(0, 0, ImageBuffer->Width, ImageBuffer->Height);
    // 填上Form1的背影色
    ImageBuffer->Canvas->Brush->Color = Color;
    ImageBuffer->Canvas->FillRect(rect);        for (int i = 0; i < ControlCount; i++)
    {
      AnsiString szClassName = Controls[i]->ClassName();
      if (szClassName == "TPanel")
      {
        ((TPanel*)Controls[i])->PaintTo(ImageBuffer->Canvas->Handle,
                                        ((TPanel*)Controls[i])->Left,
                                        ((TPanel*)Controls[i])->Top);
      }
    }
  }
  __finally
  {
    ImageBuffer->Picture->SaveToFile("c:\\Result.bmp");
    delete ImageBuffer;
  }
}
系統時間:2024-05-04 17:32:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!