
No.2ベストアンサー
- 回答日時:
>画面も印刷ダイアログボックスも表示することなく印刷を行うことは可能なのでしょうか?
可能です。実現方法としてはダメな例ですが...MFCアプリケーションのSDIでしたら
BOOL CPrintDView::OnPreparePrinting(CPrintInfo* pInfo)
{
// デフォルトの CEditView の印刷準備
pInfo->m_bDirect = TRUE;■追加
return CEditView::OnPreparePrinting(pInfo);
}
BOOL CPrintDApp::InitInstance()
{
...省略
m_pMainWnd->ShowWindow(SW_HIDE);■括弧内修正
m_pMainWnd->UpdateWindow();
m_pMainWnd->SendMessage(WM_COMMAND,ID_FILE_PRINT);■追加
...省略
}
というようにたったの2行追加と1行修正で実現できます(ただ一瞬画面表示があったりプログラムが終了できなかったりと問題はありますが)。
何を印刷したいかにもよりますが、この手のことをするときはMFCよりもSDKかATLでベタに書いてしまった方が楽です(と言ってもMFCでもSDKでもやることは同じですが)。プリントアウトは画面への描画と同じでDCへ書き出すだけですので。
この回答への補足
nitscapeさんの方法で解決できました。
hyde19さんの方法は今後のために知っておいた方がいいと思ったので
ただいま勉強中です。
お二人のおかげで解決&スキルアップすることができました。
丁寧な説明を本当にありがとうございました。

No.1
- 回答日時:
可能です。
画面の表示に関するプログラムを作ってみても、通常そのまま画面にパーツを描画するのは、最初のうちだけです。
画面描画用のメモリを確保(関数を置く)して、そこにパーツを書き込んで行き、パーツが揃ったところで画面に表示させます。これを繰り返す方が、1つ1つ画面に表示させるより、プログラムの動作が速くなるからです。
ということは、メモリの中身を画面に表示する必要性はなく、そのまま印刷機へ出力すれば良い訳です。
モニタに出力するか、紙に出力するかの違いでしかありません。
連続印刷ユーティリティなどファイルを指定して印刷だけをするものもありますしね。
この回答への補足
hyde19さん
回答ありがとうございます!
こんなに早く回答をいただけるとは思ってませんでした。
本当に感謝しています。
画面描画用のメモリを確保?
なんとなくイメージはわかるのですが具体的には???です・・・。
すいません、勉強不足で。
とりあえず画面描画用のメモリを確保というのを調べてみます。
それでもわからなかった場合は申し訳ないのですが
また質問させてください。よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
印刷要求順番と印刷出力順番が...
-
印刷ダイアログを表示させない方法
-
vbaでPDFファイルが印刷されない
-
クリレポのプリンタ設定について
-
印刷ダイアログを表示させたくない
-
A4の2枚をA3の1枚にする編集方法?
-
VBAで印刷スプール終了の判定を...
-
VBからプリンタに出力する時に...
-
VBでExcel印刷する時のプリンタ...
-
VBscriptでPDFファイルを直接印...
-
VBAで印刷の成功判定
-
VB2005から複合機を使い自動FAX...
-
VB6上から印刷ダイアログを表示...
-
VB.NET+ActiveReports で印刷...
-
CrystalReportでの連続紙印刷(...
-
ActiveReportsを使って[印刷ダ...
-
両面印刷設定方法について
-
VB2008で0ページの印刷ジョブを...
-
2回以上PDFをコピーや印刷がで...
-
APIを使用した印刷
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
印刷ダイアログを表示させない方法
-
vbaでPDFファイルが印刷されない
-
印刷ダイアログを表示させたくない
-
PHPでPDFファイルの直接印刷
-
2回以上PDFをコピーや印刷がで...
-
オートメーションエラー(214741...
-
印刷要求順番と印刷出力順番が...
-
リンク先のページを印刷したい
-
EXCELファイルの複数ダウンロー...
-
VBAで印刷の成功判定
-
プリンターを指定して印刷するには
-
VBからプリンタに出力する時に...
-
ActiveReportsを使って[印刷ダ...
-
VBAで印刷スプール終了の判定を...
-
ACCESSで設定した帳票の用紙サ...
-
VBscriptでPDFファイルを直接印...
-
VBSでExcelファイル印刷時のプ...
-
VBAで不特定枚数印刷をしたいで...
-
VBAにて指定したセルをプルダウ...
-
A4の2枚をA3の1枚にする編集方法?
おすすめ情報