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

畫面列印的怪問題???

尚未結案
kenlee
一般會員


發表:10
回覆:8
積分:3
註冊:2004-04-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-20 12:04:09 IP:61.219.xxx.xxx 未訂閱
我想列印出表單(Form1)的畫面,但用下面程式碼的方式雖有列印動作,但實際上卻無輸出任何圖形(空白),但是如果先將表單上的畫面儲存後再讀取,就可列印出畫面?兩者皆將最後輸出畫面存檔後,以圖像軟體看到的畫面卻相同(但由Win200的[內容][摘要]到的資訊卻不相同)??請問要如何在不讀/存檔的條件下,直接列印表單上的指定區域?
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Graphics::TBitmap *Bmp = new Graphics::TBitmap();
    TRect  ImgRect, PrintRect;
    int Left, Top;        // 若不先執行此行,則列印輸出為空白 //
//    Bmp->LoadFromFile("C:\\Sp\\sky.bmp");        Bmp->Width = 800;
    Bmp->Height = 600;
    Bmp->Canvas->CopyRect(Rect(0,0,800,600), Form1->Canvas, Rect(0,0,320,240));
    Left = (Printer()->PageWidth - Bmp->Width*4) / 2;
    Top =(Printer()->PageHeight - Bmp->Height*4) / 2;
    ImgRect= Rect(0, 0, Bmp->Width, Bmp->Height);
    PrintRect = Rect(10, 10, Left   Bmp->Width*4, Top   Bmp->Height*4);        Printer()->BeginDoc();
    Printer()->Canvas->CopyRect(PrintRect, Bmp->Canvas, ImgRect);
    // 測試輸出的結果 //
    Bmp->SaveToFile("C:\\Output.bmp");
    Printer()->EndDoc();
    delete Bmp;
}
發表人 - kenlee 於 2004/10/20 14:01:52
geniustom
版主


發表:100
回覆:303
積分:260
註冊:2003-01-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-27 03:15:48 IP:219.68.xxx.xxx 未訂閱
kenlee您好..用以下的方法比較直接..也比較簡單.. < class="code"> Graphics::TBitmap*Bmp1=new Graphics::TBitmap(); TCanvas *MyCanvas= new TCanvas; TRect rect = Form1->ClientRect; HDC dc = GetDC(Form1->Handle); MyCanvas->Handle = dc; Bmp1->Width = rect.Right - rect.Left; Bmp1->Height = rect.Bottom - rect.Top; Bmp1->Canvas->CopyRect(rect,MyCanvas,rect); 寫下您的PRINT程式區段 delete MyCanvas; delete Bmp1; 這樣就能順利的從記憶體取得FORM1的畫面了
kenlee
一般會員


發表:10
回覆:8
積分:3
註冊:2004-04-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-31 21:44:19 IP:218.167.xxx.xxx 未訂閱
很抱歉讓你又貼了一次,詳細討論結果如下: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=58171
系統時間:2024-05-17 13:05:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!