列印方面的問題!!!!@@ |
尚未結案
|
ckrl933
一般會員 發表:16 回覆:15 積分:6 註冊:2005-01-31 發送簡訊給我 |
如果我的ListView超過一個頁面(出現scrollbar),
該如何才能列印所有Item,我第一次用printer元件,
所以參考這裡的文章,寫的程式在底下,
每次還是只是印第一個頁面,而且品質很差~>.<~
請問該如何解決???
if (PrintDialog1->Execute())
{
Graphics::TBitmap *Bmp = new Graphics::TBitmap();
TRect TempRect; // 若不先執行此行,則列印輸出為空白 //
Bmp->LoadFromFile("Input.bmp"); TempRect=ListView1->ClientRect; Bmp->Width = TempRect.Width();
Bmp->Height = TempRect.Height();
Bmp->Canvas->CopyMode=cmSrcCopy;
Bmp->Canvas->CopyRect(Rect(0,0,Bmp->Width,Bmp->Height), ListView1->Canvas, TempRect); Printer()->BeginDoc();
Printer()->Canvas->StretchDraw(Rect(200,200,Printer()->PageWidth-200,Printer()->PageHeight-200) , Bmp);
// 測試輸出的結果 //
Bmp->SaveToFile("Output.bmp");
Printer()->EndDoc();
}
|
ckrl933
一般會員 發表:16 回覆:15 積分:6 註冊:2005-01-31 發送簡訊給我 |
|
小蟲
一般會員 發表:23 回覆:35 積分:11 註冊:2004-08-26 發送簡訊給我 |
|
ckrl933
一般會員 發表:16 回覆:15 積分:6 註冊:2005-01-31 發送簡訊給我 |
|
ckrl933
一般會員 發表:16 回覆:15 積分:6 註冊:2005-01-31 發送簡訊給我 |
謝謝回應
我後來找不到方法解決, 就只好用原本的笨方作掉了~@@~
Printer()->BeginDoc();
for (int i=0;i<((ListView1->Items->Count/32) 1);i )
{
Bmp->Canvas->CopyRect(Rect(0,0,Bmp->Width,Bmp->Height), ListView1->Canvas, Rect(0,0,Bmp->Width,Bmp->Height));
Printer()->Canvas->CopyRect(PrintRect, Bmp->Canvas, ImgRect);
if (i != (PMListViewBox->Items->Count/31))
{
Printer()->NewPage();
ListView1->Perform(WM_VSCROLL, SB_PAGEDOWN, 0);
}
} 想不出什麼好方法了, 只好用SendMessage方式讓Scroll bar跳一頁印
不過沒其它好方法ㄌ啊!~>.<~
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |