• 締切済み

CPrintDialogに必要なパラメータ

お世話になっております。 VC2005を使用しております。 今、SDIのCFromViewタイプのプログラムを組んでおります。 そのため、標準の印刷機能が実装されておりません。 そこで、CPrintDialogを使用して実装したいと思います。 CPageSetupDialog myPtDlg(FALSE); と書いて実行すると、設定は固定ですが印刷する事は可能です。 しかし、CPageSetupDialog myPtDlg(TRUE); として、設定を行おうとするとうまく動作しません。 TRUEを設定した時は、どのようなパラメータを自分で書き込む必要があるのでしょうか? 教えてください。 よろしくお願いします。

みんなの回答

  • iyomante
  • ベストアンサー率60% (14/23)
回答No.2

FormView ということは画面のスクリーンショットを印刷するようなイメージなのでしょうか。 もしDoc-Viewを使ってるなら、OnPrint() を実装することで標準機能を使えないでしょうか? 標準機能を全く使わないのであれば、 設定ダイアログOK後とりあえずこの二つを印刷ダイアログに渡せばよいと思います m_pd.hDevNames m_pd.hDevMode 複雑な印刷をするのであれば他にも必要な設定等あるかもしれませんが。 // 設定ダイアログ CPrintDialog pdlg(TRUE); if(pdlg.DoModal() == IDOK) { // 印刷ダイアログ CPrintDialog prndlg(FALSE); prndlg.m_pd.hDevNames = pdlg.m_pd.hDevNames; prndlg.m_pd.hDevMode = pdlg.m_pd.hDevMode; if(prndlg.DoModal() == IDOK) { // 印刷 HDC hdc = prndlg.GetPrinterDC(); CDC* pDC = CDC::FromHandle(hdc); pDC->StartDoc("Test印刷ドキュメント"); pDC->StartPage(); // 描画処理 pDC->TextOut(10,10, "test"); CBrush br(RGB(0,255,0)); pDC->FillRect(CRect(50,50,200,200), &br); pDC->EndPage(); pDC->EndDoc(); pDC->DeleteDC(); } }

cappcino
質問者

お礼

お世話になっております。 ご回答ありがとうございます。 PictureControlに書き込んだ画像を印刷したいと考えております。 FormViewにしたのは、細かな設定を画面内で行いたかったため選択しました。 プログラムを参考に確認したいと思います。 今後ともよろしくお願いします。

すると、全ての回答が全文表示されます。
  • iyomante
  • ベストアンサー率60% (14/23)
回答No.1

MFCならCPageSetupDialog の引数はTRUE/FALSE ではなくダイアログの設定フラグが入ると思います。 詳細は参考URLで

参考URL:
http://msdn2.microsoft.com/ja-jp/library/5455wt54(VS.80).aspx
cappcino
質問者

お礼

お世話になっております。 ご回答ありがとうございます。 申し訳ありませんでした。 CPageSetupDialog は CPrintDialog の間違いです。 もしよろしければ、 CPrintDialog myPtDlg(TRUE); の時の必要なパラメータ等の設定を教えてください。 よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A