CPrintDialogでプリンタのプロパティ設定が有効にならない

[戻る]
おのでら 2002/10/27(日) 21:12:46
VC++初心者です。
CPrintDialogクラスを使用して「プリンタの設定」ダイアログを表示して帳票を出力するプロ
グラムを作成しています。
帳票の出力はできるようになったのですが、「プリンタの設定」ダイアログから[プロパティ]
ボタンをクリックして開くプリンタのレイアウト設定が有効に機能しません。
例えばEpsonのプリンタでレイアウト設定で割り付け印刷(2ページを1枚にする)を実行しても
1ページ1枚で出力されてしまいます。
プログラムで何か処置をしないとプロパティで設定した内容は有効にならないのでしょうか?
よろしくお願いいたします。

環境:
Windows2000(SP3)
VC++6.0(SP5)
MFC使用

PATIO 2002/10/28(月) 17:24:27
検証はしていませんので参考程度に聞いてください。
CPrintDialogで設定してと言う話ですが、印刷に使用しているCDCはCPrintDialogから
取得した物を使っているでしょうか?
以前にプログラミングした時にそういった現象にはあっていませんので、
心当たりがあるとすれば、そのくらいなのですけれど。

おのでら 2002/10/31(木) 20:11:07
CDCはCPrintDialogから取得しています。
別の関数を使用すればプリンタのレイアウト設定が有効になるという話を聞いたことがありま
す。
PATIOさんはどのような方法で開発されましたか?
よろしければ教えていただきたく存じます。

PATIO 2002/11/05(火) 20:49:26
私の場合、MFCのフレームワークを利用して印刷を実装することが多いので
基本的に自分でCPrintDialogを直接開いて行うようなことはしないです。
ユーザーの特別な要求があれば行うかもしれませんが、Windowsの仕組みをうまく
利用するのであれば、MFCのフレームワークを使った方がいいと思いますよ。

MFCのフレームワークを使用する場合、HELPの印刷の実装部分を読むと印刷時の
流れがわかっていいと思います。

MFCのフレームワークはドキュメント・ビュー・アーキテクチャを使って行います。
ダイアログベースのプログラムには使用できませんので、この場合は、おのでらさんが
行っているような方法になると思います。

おのでら 2002/11/22(金) 22:21:45
[[解決]]
ご回答いただきながらお返事が大変遅れまして申し訳ございません。
作成しているアプリがダイアログベースなのでCPrintDialogで行いました。
原因は引数の使い方がまちっがているだけでした。
お騒がせいたしました。(ありがとうございました。)

古いスレッドには追加発言できません。