• 締切済み

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

  • キー入力の取得

    お世話になっております。 VC2005を使用しております。 SDIプログラムのFormViewを使用してプログラムを作成しております。 メイン画面においてキーの入力(スペース等)を認識したいのですが方法がわかりません。 Formの場合KeyPreviewをTrueにするという方法がありますが、FormViewには無いような気がします。 どのようにすればよいのでしょうか? 教えてください。

  • 画面を表示せずに印刷

    VC++6.0 SDI プロジェクト名:PrintD プログラムの実行と同時に印刷を開始するプログラムを作成したいのですが、 画面も印刷ダイアログボックスも表示することなく印刷を行うことは可能なのでしょうか? どなたかご存知の方がいらっしゃいましたらご教授下さい。 質問を載せさせていただくこと自体が初めてなので質問の仕方がオカシイ場合はご指摘下さい。 よろしくお願いします。

  • VC++/MFCでリフレクション

    Javaでは、ObjectのgetClass()でClassクラスの インスタンスが取れ、実行時に指定した、メソッド名や、引数で、動的にメソッドを呼びだすようなリフレクション機能が使用できます。 同様のことをC#でも実装したことがあります。 VC++/MFCにて、このようなリフレクションをやるやり方を教えてください。 C++の標準あるいわ、MFCの機能など、どちらでもよいです。 メタクラス型のようなものを実行時に取得して、リフレクションする方法だと思います。 質問の内容はVC++.NETやVC++/CLIではないです。そちらのほうでのやり方は既に発見しました。

  • EMBEDタグ内のパラメーターの設定の方法を教えてください

    <EMBED WIDTH="320" HEIGHT="256" SRC="http://xxxxxxxx..../xxxx.mov" HREF="http://xxxxxxx..../yyyy.mov" AUTOPLAY="true" TARGET="myself" COLTROLLER="false" BORDER="0" KIOSKMODE="true" DONTFLATTENWHENSAVING PLUGINSPAGE="http://www.apple.com/quicktime/download/indext.html"> </EMBED> なる埋め込みをしたHTMLファイル内で、HREFパラメーターをメニューで設定し、起動させたいのですが、特にHREFパラメーターの設定と起動をJavaScriptで行いたいのですが、方法がわかりません。どこかヒントになるURLか、ヒントで結構ですんで教えてください。宜しくお願い致します。

  • SDKってなんですか?

     プログラミングを始めようと思いVC++6.0を手に入れましたが、何からはじめればよいのかわからずつまずいております。HPを色々見ていますが、とあるところでSDKプログラムという言葉が出てきました。SDIなら本に書いてありましたが違うものでしょうか。  あわせて、VC++6.0によるプログラムの勉強のしかたも教示いただければうれしいです。VC++を手に入れた動機は、 JW-CADのJWWファイルをまとめて(300枚ぐらい)印刷できないかなと思ったことでした。

  • DB作成パラメータ値

    Oracle 9iを使用しています。 Win2000上で標準パラメータでDBを作成し、アプリケーションを稼動しています。このEXPORTファイルを使用して Win2003で、同じく標準パラメータでDB(同じくOracle9i)を作成し、 DBをインポートするとアーカイブログの空きがない、のエラーとなり、 IMPORTコマンドは異常終了してしまします。 同じOracle 9iでも稼動しているOSにより、各種領域設定はことなるのでしょうか?

  • visibleの機能について

    VBで「Label.visible」でFalseが非表示、Trueが表示だと思うのですが、Trueで非表示の場合があります。 プログラムではTrueにしたりFalseにしたりします。もしかしてvisibleの設定がおかしくなったのかなと思って実行中にvisibleの内容を表示してみてみましたが、Trueで非表示になる場合があります。必ず非表示になると言うわけではないので困っています。 原因がわかる方、もしかしてここでは?と言う方でも結構です。 宜しくお願い致します。

  • isdigitの挙動について

    #include <iostream> #include <ctype.h> using namespace std; int main() { int i = 100; if (isdigit(i)){ cout << "true"; }else{ cout << "false"; } return 0; } というプログラムを実行したのですが、falseが標準出力に表示されます。 i=100なので、isdigitでtrueが返ってくるのだと思っていたのですが、なぜfalseが帰ってくるのでしょうか?? どなたか詳しい方いらっしゃったらご教示いただけると幸いです。

  • 実行時はEXCEL自体を非表示にし、印刷時はワークシートのコントロール(Microsoftバーコードコントロール9.0)を表示したい

    EXCEL2002sp3です。 実行時はEXCEL自体を非表示にし、印刷時はワークシートのコントロール(Microsoftバーコードコントロール9.0)を表示したいと思います。 Application.Visible = False 実行後、コントロールのあるワークブックをOPENすると、Application.Visible が True となりEXCELが表示されてしまいます。 バーコードのプロパティのVisibleをFalseに設定してから、実行させると、EXCELは表示されないのですが、今度はバーコードが印刷されません。この時バーコードのプロパティのPrintObjectはTrueにしています。 何か間違っているのでしょうか?

  • VB6でスプリッター(サイズ変更する分割線)を使いたい

    エクスプローラーのツリービューとリストビューの間に入っている分割線、これを使用したいのです。 VC++等を使うとエクスプローラースタイルを選択すれば実装済みのプロジェクトができあがるのですが、VB6で実装する方法が分からず頓挫しています。 確か.netではSpliterオブジェクトとして標準ツール郡に入っていた覚えがあるのですが、VB6では見つけることができませんでした。 できればネット上で公開している特別なocxなどは使用せずにVB6に標準で付いてくる機能(Common Control等)で実装したいのですが、ご存知の方、ぜひご教授いただけますようお願いします。