
使う CPrintDialogクラスは、Windows のコモン ダイアログ ボックスで印刷を提供するサービスをカプセル化します。一般的な印刷ダイアログ ボックス Windows の標準に一貫性のある方法で印刷、印刷設定のダイアログ ボックスを実装する簡単な方法を提供します。
ご希望の場合、アプリケーションの印刷処理の多くの側面を処理するため、フレームワークを頼ることができます。この例では、フレームワークは、Windows コモン ダイアログ ボックスの印刷を自動的に表示されます。アプリケーションの印刷フレームワーク ハンドルがあるが、共通の印刷] ダイアログ ボックス印刷ダイアログ ボックスでをオーバーライドすることもできます。印刷タスクを処理するために、フレームワークを使用しての詳細については、参照してください 印刷でVisual の C++ プログラマのガイド。
アプリケーション フレームワークの関与なし印刷を処理する場合は、提供、コンス トラクターで」として、使う CPrintDialogクラスを使用することができます。 または使う CPrintDialogから独自のダイアログ クラスを派生し、お客様のニーズに合うように、コンス トラクターを記述することができます。CCommonDialogクラスから派生しているために、どちらの場合では、これらのダイアログ ボックス標準の MFC のダイアログ ボックス動作します。
使う CPrintDialogオブジェクトを使用するには、最初に使う CPrintDialogコンス トラクターを使用してオブジェクトを作成します。ダイアログ ボックスが作成された後は、設定または、ダイアログ ボックスのコントロールの値を初期化するには、 m_pd構造体の値を変更できます。M_pd構造体の型である PRINTDLG。この構造の詳細については、Win32 SDK のマニュアルを参照してください。
HDevModeおよびhDevNamesメンバー m_pd内の独自のハンドルを指定しない場合は、ダイアログ ボックスを完了したらこれらのハンドルを Windows 関数GlobalFreeを呼び出す必要があります。CWinApp::OnFilePrintSetupによって提供される、フレームワークの印刷セットアップの実装を使用する場合、これらのハンドルを解放する必要はありません。ハンドルはCWinAppによって維持され、 CWinAppのデストラクターで解放されます。それだけ使う CPrintDialogスタンドアロンを使用する場合これらのハンドルを解放する必要があります。
ダイアログ ボックスのコントロールを初期化した後、ダイアログ ボックスを表示し、印刷オプションを選択をユーザーに許可するには、 DoModalメンバー関数を呼び出します。Domodal 関数は、ユーザーが [ok] (IDOK) またはキャンセル (IDCANCEL) ボタンを選択したかどうかを返します。
DoModalがIDOKを返した場合は、使う CPrintDialogのメンバー関数の 1 つ、ユーザーが入力する情報を取得するために使用することができます。
CPrintDialog::GetDefaultsメンバー関数は、ダイアログ ボックスを表示せず、現在のプリンターの既定値を取得するために便利です。このメンバー関数がユーザーとの対話を必要としません。
ダイアログ ボックスの初期化中にエラーが発生したかどうかを確認して、エラーについての詳細は、Windows CommDlgExtendedError関数を使用できます。この関数の詳細については、Win32 SDK のマニュアルを参照してください。
使う CPrintDialogでは COMMDLG に依存します。Windows 3.1 以降のバージョンに付属する DLL ファイル。
ダイアログ ボックスをカスタマイズするには、使う CPrintDialogからクラスを派生、カスタム ダイアログ テンプレートを提供する拡張コントロールからの通知メッセージを処理するメッセージ マップを追加します。すべての未処理のメッセージは、基本クラスに渡される必要があります。フック関数をカスタマイズすることは必須ではありません。
異なる印刷またはプリンターの設定] ダイアログ ボックスをかどうかに応じて、同じメッセージを処理するには、各ダイアログ ボックス クラスを派生する必要があります。印刷ダイアログ ボックスで [印刷設定] ボタンが選択されている場合は、新しいダイアログ ボックスの作成、Windows AttachOnSetup関数もオーバーライドする必要があります。
使う CPrintDialogを使用しての詳細についてを参照してください 共通ダイアログ クラスでVisual の C++ プログラマのガイド。
#include lt;afxdlgs.h>
サンプル特価; MFC サンプル DIBLOOK(&N)
参照特価;CPrintInfo(&N)