次の方法で共有


CPrintDialog クラス

Windows のコモン ダイアログ ボックスである [印刷] ダイアログで提供されるサービスをカプセル化したものです。

class CPrintDialog : public CCommonDialog

解説

印刷のコモン ダイアログ ボックスは、Windows の標準に従った [印刷] および [プリンターの設定] のダイアログ ボックスを実装するための簡単な方法を提供しています。

注意

CPrintDialogEx クラスは、Windows 2000 の [印刷] プロパティ シートに提供されるサービスをカプセル化します。 詳細については、「CPrintDialogEx クラス の概要」を参照してください。

CPrintDialog の機能は、印刷とページの両方を設定するためのコモン ダイアログ ボックスを提供するための CPageSetupDialog, でも提供されます。

アプリケーションの印刷処理の大部分をフレームワークに任せることができます。 フレームワークを使うと、印刷時に Windows のコモン ダイアログ ボックスの [印刷] ダイアログを自動的に表示します。 アプリケーションの印刷処理をフレームワークに任せることができますが、独自の印刷処理ダイアログ ボックスでコモン ダイアログ ボックスをオーバーライドすることもできます。 印刷処理のためのフレームワークの使い方の詳細については、「印刷」を参照してください。

フレームワークを利用せずに、作ったアプリケーションで印刷処理を行う場合は、提供されているコンストラクターで CPrintDialog クラスを構築して "そのまま" の形で利用できます。または、CPrintDialog クラスから独自のダイアログ クラスを派生し、必要に応じたコンストラクターを作成することもできます。 いずれの場合も、これらのダイアログ ボックスは CCommonDialog クラスから派生したものなので、標準の MFC のダイアログ ボックスと同等の動作をします。

CPrintDialog オブジェクトを使うには、まず CPrintDialog コンストラクターを使ってオブジェクトを作成します。 ダイアログ ボックスが作成された後は、ダイアログ ボックスのコントロールを初期化するために m_pd 構造体の任意の値で設定または変更ができます。 m_pd 構造体の型は、PRINTDLG です。 この構造体の詳細については、Windows SDK を参照してください。

m_pdhDevModehDevNames メンバーの独自のハンドルを用意しないときは、ダイアログ ボックスを終了するときにハンドルを解放するために GlobalFree 関数を呼び出します。 CWinApp::OnFilePrintSetup が提供するフレームワークの [プリンターの設定] の実装を使っているときは、このハンドルを解放する必要はありません。 このハンドルは CWinApp が管理し、CWinApp のデストラクターが解放します。 CPrintDialog を単独で使っているときのみ、このハンドルを解放する必要があります。

ダイアログ ボックスのコントロールを初期化した後は、ダイアログ ボックスを表示し、ユーザーが印刷オプションを選択できるように DoModal メンバー関数を呼び出します。 DoModal は、ユーザーが [OK] (IDOK) ボタンと [キャンセル] (IDCANCEL) ボタンのどちらをクリックしたかを返します。

DoModal 関数が IDOK を返した場合は、入力された情報を取得するために CPrintDialog メンバー関数の 1 つを使用できます。

CPrintDialog::GetDefaults メンバー関数は、ダイアログ ボックスを表示せずに現在の既定のプリンターを取得するのに使います。 このメンバー関数はユーザーの操作を必要としません。

ダイアログ ボックスの初期化中にエラーが発生したかどうかを確認し、そのエラーについての情報を得るために、Windows の CommDlgExtendedError 関数を使用できます。 この関数の詳細については、Windows SDK を参照してください。

CPrintDialog は、Windows Versions 3.1 以降で配布される COMMDLG.DLL ファイルを使います。

ダイアログ ボックスをカスタマイズするには、CPrintDialog からクラスを派生し、独自のダイアログ テンプレートを作成します。さらに、外部のコントロールからの通知メッセージを処理するためにメッセージ マップを追加します。 処理されないメッセージはすべて基本クラスに送られます。 フック関数のカスタマイズは必要ありません。

ダイアログ ボックスが [印刷] か [プリンターの設定] かによって同じメッセージに対して異なる処理を行うためには、ダイアログ ボックスごとにクラスを派生します。 [印刷] ダイアログ ボックス内の [プリンターの設定] がクリックされたときに、新しいダイアログ ボックスの作成に移るために Windows の AttachOnSetup 関数もオーバーライドします。

CPrintDialog の使い方の詳細については、「コモン ダイアログ クラス」を参照してください。

必要条件

**ヘッダー:**afxdlgs.h

参照

処理手順

DIBLOOK サンプル:DIBs およびカラー パレットの使用を示します

参照

CCommonDialog クラス

階層図

CPrintInfo 構造体

その他の技術情報

CPrintDialog のメンバー