OnPrepareDC() の実行回数 – 固定ページ 2 – プログラミング – Home

通知
すべてクリア

OnPrepareDC() の実行回数

固定ページ 2 / 2

ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

reliableは、正確なという意味のようです。
notがつくので不正確な........これはうまくないですね。
何回か「GetJob()」をリトライしても結果は変わらないですか?
駄目だとすると他になにか手がないか調べないといけませんね。


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

PagesPrinted
The number of pages that have printed. This value may be zero if the print
job does not contain page delimiting information.

 英訳は下手なので要約すると、ペ-ジの区切りが分からないと'0'返すみたいです。
僕も、今は対策が分かりませんね。


返信引用
テッパン
 テッパン
(@テッパン)
ゲスト
結合: 10年前
投稿: 13
Topic starter  

さまざまなタイミングでプリンタ側の情報を取得できるよう、実験的にアプリに押ボタン
を設けて、その中に上記のコードを書きました。
pJobStorage->PagesPrinted が示す値は、次の通りです。

1.プリンタのダイアログが表示されているタイミングであれば、印刷を指示したトータ
ル枚数となる。(まだ印刷の途中であっても)
2.プリンタのダイアログが消えた後では、0枚となる。(まだ印刷が進行中であっても

3.例として、3ページの印刷を指示し、用紙を1枚のみセットして印刷すると、1枚目
を印刷中(プリンタダイアログが出ているとき)は、3枚という値が返り、プリンタダイ
アログが一旦消える。
消えた後では0枚が返る。
その後「用紙不足」の警告のあるプリンタダイアログが出る。このとき押ボタンを押すと
、印刷を指示した3枚という値が返る。

結論として、自分の目的にかなわないようです。


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

うーーん、
CPrintInfoでヘッダ・フッダの設定ができるみたいです。
 ページの区切りが出来れば、PagesPrintedの値も取得できるか?
ですね。
今のところ、それぐらいしかないですね。


返信引用
テッパン
 テッパン
(@テッパン)
ゲスト
結合: 10年前
投稿: 13
Topic starter  

明記していませんでした。
印刷対象はドキュメントではなく、CViewクラスの OnPrint 中のコード
pDC->TextOut(x, y, str);
IPicture::Render(hDC, x, y, cx, cy, ...);
などです。
ページごとに、文字や画像が変わります。

> CPrintInfoでヘッダ・フッダの設定ができるみたいです。
CPrintInfo構造体のメンバーには、それらしいものがありません。
サンプルがないか探しましたが、見つかりませんでした。


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

https://msdn.microsoft.com/ja-jp/library/ddkzks56(v=vs.90).aspx

今のところ候補は、
次の二つですね。
m_rectDraw
m_strPageDesc

ほかの構造体もあるかも知れませんね。

スレの目的は解決したみたいなので、一度終了して別スレ立てたほうが
いいかも知れませんね。


返信引用
テッパン
 テッパン
(@テッパン)
ゲスト
結合: 10年前
投稿: 13
Topic starter  

本スレッド、終了とさせて戴きます。
ありがとうございました。
別スレは、も少し勉強してからにします。


返信引用
固定ページ 2 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

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