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