動的に生成したCView派生クラスでの印刷/印刷プレビュー

[戻る]
paom 2010/01/18(月) 12:04:21
CViewの派生クラスCTestViewを印刷/印刷プレビュー用
(画面表示はしない)のためだけに作成(new)しておき、
印刷/印刷プレビューを行いたい際に同Viewに描画データを設定し、
OnFilePrint()/OnFilePreview()をコールするようなイメージで、
印刷/印刷プレビューを行いたいと考えているのですが、
このようなことは可能なのでしょうか?

MFCのフレームワークとして上記処理は定石を外していると思うのですが、
分割ウィンドウ(SplitterWnd)を構築する際に、
各ペインに別のViewクラスを定義してる関係で
メインのViewクラスとの連携が途切れてしまっており、
印刷/印刷プレビューを行うために
このような方法が可能かどうか模索しています。
※各ペインのViewでは印刷関連処理を行わないようにしています

何か他にMFCの作法に則った方法があるような気もするのですが
現時点では思いつくものがないため、もし他の方法があるようでしたら
そちらもご教授頂けると助かります。

ITO 2010/01/20(水) 21:16:16
僕だったら、
  印刷になったら、GetActiveView()等でViewのポインターを調べて 
  そのViewのOnFilePrint()を実行するのかな?
と思います。
なので、ここのViewで印刷が出来るようにしておく必要があると思います。

ITO 2010/01/20(水) 21:17:21
修正です。

ここの → 個々の
です。

おんどり 2010/01/24(日) 01:01:08
個々に実装するよりCPrintViewに印刷処理を実装して各ペインのViewはCPrintViewを継
承したほうが楽でしょうね。

maru 2010/01/26(火) 15:39:56
単純な疑問として
> ※各ペインのViewでは印刷関連処理を行わないようにしています
として、何故、わざわざ別のViewクラスを作成してそこで印刷処理を実行しよう
としているのかが分かりません。つまり、各ペインのViewで印刷処理が出来ない
理由が理解できません。

> 分割ウィンドウ(SplitterWnd)を構築する際に、
> 各ペインに別のViewクラスを定義してる関係で
> メインのViewクラスとの連携が途切れてしまっており、
と書かれていますが、SplitterWnd上の複数のViewクラスとメインのViewクラスの関係
は?CDocumentと各Viewクラスの関係は?
この辺が分からないと適切なアドバイスは得られないのではないのでしょうか。

複数のViewが有るけど印刷の処理を行うべきViewが分からないので、印刷専用のView
を作ろうというのであれば、印刷処理を行うべきViewを決定する仕組みがあればよい
のであってわざわざ別のクラスを作成する必要はないでしょう。

複数のViewの印刷を一つにまとめたいのであれば、おんどりさんの書いている通りに
印刷専用クラスを作成して各Viewで継承するという方法もあるでしょう。

問題点の対策が別の方向に向いているような感じがします。

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