大量のデータの印刷 – プログラミング – Home

通知
すべてクリア

大量のデータの印刷


べるすたしお
 べるすたしお
(@べるすたしお)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

先日はありがとうございました。
大量のデータ(double)を読み込んで、これを処理し、結果をプリントアウトするプログラム
を作っているのですが、今度は印刷でつまずいてしまいました(汗
印刷するデータは倍精度実数型で、データを一列に出力しています。
1ページ目は出力されるのですが、2ページ目以降が出力されません。
VC++6.0 MFCのダイアログベースでやっています。
よろしくお願い致します。
一応コードを下にのせておきます。

CDC pDC;
CPrintDialog dlg(FALSE);
if(dlg.DoModal() == IDOK) {
  HDC hd = dlg.GetPrinterDC();
  pDC.Attach(hd);

  DOCINFO ppr;
  ppr.cbSize = sizeof(DOCINFO);
  ppr.lpszDocName = NULL;
  ppr.lpszOutput = NULL;
  pDC.StartDoc(&ppr);
  pDC.StartPage();

  TEXTMETRIC tm;
  pDC.GetTextMetrics(&tm);
  hpr = tm.tmHeight+tm.tmExternalLeading;

  // 処理開始
     :
  // 処理終了

  pDC.EndPage();
  pDC.EndDoc();
  }
}


引用解決済
トピックタグ
べるすたしお
 べるすたしお
(@べるすたしお)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

すいません。
}がひとつ多いですね(^^;


返信引用
sara
 sara
(@sara)
ゲスト
結合: 23年前
投稿: 99
 

印刷を実装する上で一番大切なのはページ分割することです。

次のような手順で考えてはいかがでしょうか?
① 1ページに印刷可能な行数を求める(印刷情報やフォント情報から計算する)
② ①の行数を元に必要なページ数を求める
③ ページ数分 印刷処理を繰り返す(pDC.StartDoc(&ppr) から pDC.EndDoc(&ppr)まで)
  その際、印刷しているページに該当するデータだけを描画する


返信引用
sara
 sara
(@sara)
ゲスト
結合: 23年前
投稿: 99
 

> ③ ページ数分 印刷処理を繰り返す(pDC.StartDoc(&ppr) から pDC.EndDoc(&ppr)まで)
pDC.StartPage(&ppr) から pDC.EndPage(&ppr) の間違いです。


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

HELPの熟読をされた方が良いような気がします。
この辺の記述は、割と詳しくかかれています。
MSのHELPは確かに所々間違いもあるみたいですが、
基本的にはかなり有益な情報が記述してあります。
よく読んで損をすると言う事は無いですよ。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました