CPrintDialogEx クラス
Windows Print プロパティ シートによって提供されるサービスをカプセル化します。
構文
class CPrintDialogEx : public CCommonDialog
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CPrintDialogEx::CPrintDialogEx | CPrintDialogEx オブジェクトを構築します。 |
パブリック メソッド
名前 | 説明 |
---|---|
CPrintDialogEx::CreatePrinterDC | [印刷] ダイアログ ボックスを表示せずに、プリンター デバイス コンテキストを作成します。 |
CPrintDialogEx::D oModal | ダイアログ ボックスを表示し、ユーザーが選択できるようにします。 |
CPrintDialogEx::GetCopies | 要求されたコピーの数を取得します。 |
CPrintDialogEx::GetDefaults | ダイアログ ボックスを表示せずに、デバイスの既定値を取得します。 |
CPrintDialogEx::GetDeviceName | 現在選択されているプリンター デバイスの名前を取得します。 |
CPrintDialogEx::GetDevMode | DEVMODE 構造体を取得します。 |
CPrintDialogEx::GetDriverName | システム定義プリンター デバイス ドライバーの名前を取得します。 |
CPrintDialogEx::GetPortName | 現在選択されているプリンター ポートの名前を取得します。 |
CPrintDialogEx::GetPrinterDC | プリンター デバイス コンテキストへのハンドルを取得します。 |
CPrintDialogEx::P rintAll | 文書のすべてのページを印刷するかどうかを指定します。 |
CPrintDialogEx::P rintCollate | 照合されたコピーを要求するかどうかを決定します。 |
CPrintDialogEx::P rintCurrentPage | 文書の現在のページを印刷するかどうかを決定します。 |
CPrintDialogEx::P rintRange | 指定した範囲のページのみを印刷するかどうかを決定します。 |
CPrintDialogEx::P rintSelection | 現在選択されている項目のみを印刷するかどうかを指定します。 |
パブリック データ メンバー
名前 | 説明 |
---|---|
CPrintDialogEx::m_pdex | CPrintDialogEx オブジェクトをカスタマイズするために使用される構造体。 |
解説
フレームワークに依存して、アプリケーションの印刷プロセスのさまざまな側面を処理できます。 フレームワークを使用して印刷タスクを処理する方法の詳細については、 Printingに関する記事を参照してください。
フレームワークを使用せずにアプリケーションで印刷を処理する場合は、指定されたコンストラクターで CPrintDialogEx
クラスをそのまま使用するか、 CPrintDialogEx
から独自のダイアログ クラスを派生させ、ニーズに合わせてコンストラクターを記述することができます。 どちらの場合も、これらのダイアログ ボックスはクラス CCommonDialog
から派生しているため、標準の MFC ダイアログ ボックスと同様に動作します。
CPrintDialogEx
オブジェクトを使用するには、まず、CPrintDialogEx
コンストラクターを使用してオブジェクトを作成します。 ダイアログ ボックスが作成されたら、ダイアログ ボックスのコントロールの値を初期化するために、 m_pdex 構造体内の任意の値を設定または変更できます。 m_pdex
構造体は、PRINTDLGEX 型です。 この構造の詳細については、Windows SDK を参照してください。
hDevMode
メンバーとhDevNames
メンバーのm_pdex
で独自のハンドルを指定しない場合は、ダイアログ ボックスが完了したときに、これらのハンドルに対して Windows 関数GlobalFree
を呼び出してください。
ダイアログ ボックス コントロールを初期化した後、 DoModal
メンバー関数を呼び出してダイアログ ボックスを表示し、ユーザーが印刷オプションを選択できるようにします。 DoModal
戻るときに、ユーザーが [OK]、[適用]、または [キャンセル] ボタンを選択したかどうかを確認できます。
ユーザーが [OK] を押した場合は、 CPrintDialogEx
のメンバー関数を使用して、ユーザーが入力した情報を取得できます。
CPrintDialogEx::GetDefaults
メンバー関数は、ダイアログ ボックスを表示せずに、現在のプリンターの既定値を取得する場合に便利です。 この方法では、ユーザーの操作は必要ありません。
Windows CommDlgExtendedError
関数を使用すると、ダイアログ ボックスの初期化中にエラーが発生したかどうかを判断し、エラーの詳細を確認できます。 この関数の詳細については、Windows SDK を参照してください。
CPrintDialogEx
の使用方法の詳細については、「Common ダイアログ クラスを参照してください。
継承階層
IObjectWithSite
IPrintDialogCallback
CPrintDialogEx
要件
Header: afxdlgs.h
CPrintDialogEx::CPrintDialogEx
Windows Print プロパティ シートを作成します。
CPrintDialogEx(
DWORD dwFlags = PD_ALLPAGES | PD_USEDEVMODECOPIES | PD_NOPAGENUMS | PD_HIDEPRINTTOFILE | PD_NOSELECTION | PD_NOCURRENTPAGE,
CWnd* pParentWnd = NULL);
パラメーター
dwFlags
ビットごとの OR 演算子を使用して、ダイアログ ボックスの設定をカスタマイズするために使用できる 1 つ以上のフラグ。 たとえば、PD_ALLPAGES フラグは、文書のすべてのページに既定の印刷範囲を設定します。 これらのフラグの詳細については、Windows SDK の PRINTDLGEX 構造体を参照してください。
pParentWnd
ダイアログ ボックスの親ウィンドウまたは所有者ウィンドウへのポインター。
解説
このメンバー関数は、オブジェクトのみを構築します。 DoModal
メンバー関数を使用して、ダイアログ ボックスを表示します。
CPrintDialogEx::CreatePrinterDC
DEVMODE および DEVNAMES 構造体からプリンター デバイス コンテキスト (DC) を作成します。
HDC CreatePrinterDC();
戻り値
新しく作成されたプリンター デバイス コンテキストを処理します。
解説
返された DC は、m_pdexのhDC
メンバーにも格納されます。
この DC は現在のプリンター DC と見なされ、以前に取得した他のプリンター DC は削除する必要があります。 この関数を呼び出し、結果の DC を使用することができます。印刷ダイアログ ボックスは表示しません。
CPrintDialogEx::D oModal
この関数を呼び出して、Windows Print プロパティ シートを表示し、ユーザーがコピー数、ページ範囲、コピーを照合するかどうかなど、さまざまな印刷オプションを選択できるようにします。
virtual INT_PTR DoModal();
戻り値
INT_PTR戻り値は実際には HRESULT です。 Windows SDK の PrintDlgEx の「戻り値」セクションを参照してください。
解説
m_pdex
構造体のメンバーを設定して、さまざまな印刷ダイアログ オプションを初期化する場合は、DoModal
を呼び出す前に、ダイアログ オブジェクトを構築した後に行う必要があります。
DoModal
を呼び出した後、他のメンバー関数を呼び出して、ユーザーがダイアログ ボックスに入力した設定または情報を取得できます。
DoModal
の呼び出し時にPD_RETURNDC フラグを使用すると、m_pdexのhDC
メンバーにプリンター DC が返されます。 この DC は、CPrintDialogEx
の呼び出し元が DeleteDC を呼び出して解放する必要があります。
CPrintDialogEx::GetCopies
DoModal
を呼び出して要求されたコピーの数を取得した後、この関数を呼び出します。
int GetCopies() const;
戻り値
要求されたコピーの数。
CPrintDialogEx::GetDefaults
この関数を呼び出して、ダイアログ ボックスを表示せずに既定のプリンターのデバイスの既定値を取得します。
BOOL GetDefaults();
戻り値
成功した場合は TRUE、それ以外の場合は FALSE。
解説
DEVMODE および DEVNAMES 構造体からプリンター デバイス コンテキスト (DC) を作成します。
GetDefaults
では、Print プロパティ シートは表示されません。 代わりに、m_pdexのhDevNames
およびhDevMode
メンバーを、システムの既定のプリンター用に初期化された DEVMODE および DEVNAMES 構造体に対して処理するように設定します。 hDevNames
とhDevMode
の両方が NULL であるか、GetDefaults
失敗する必要があります。
PD_RETURNDC フラグが設定されている場合、この関数は呼び出し元に hDevNames
と hDevMode
( m_pdex.hDevNames
および m_pdex.hDevMode
にある) を返すだけでなく、 m_pdex.hDC
でプリンター DC も返します。 呼び出し元は、プリンター DC を削除し、CPrintDialogEx
オブジェクトを終了したときにハンドルに対して Windows GlobalFree 関数を呼び出す必要があります。
CPrintDialogEx::GetDeviceName
この関数は、 DoModal を呼び出して現在選択されているプリンターの名前を取得した後、または GetDefaults を呼び出して既定のプリンターの名前を取得した後に呼び出します。
CString GetDeviceName() const;
戻り値
現在選択されているプリンターの名前。
解説
GetDeviceName
によって返されるCString
オブジェクトへのポインターを、CDC::CreateDC の呼び出しのlpszDeviceName
の値として使用します。
CPrintDialogEx::GetDevMode
DoModal または GetDefaults を呼び出して印刷デバイスに関する情報を取得した後、この関数を呼び出します。
LPDEVMODE GetDevMode() const;
戻り値
DEVMODE データ構造。印刷ドライバーのデバイスの初期化と環境に関する情報が含まれます。 Windows SDK で説明されている Windows GlobalUnlock 関数を使用して、この構造体によって取得されたメモリのロックを解除する必要があります。
CPrintDialogEx::GetDriverName
DoModal または GetDefaults を呼び出して、システム定義プリンター デバイス ドライバーの名前を取得した後、この関数を呼び出します。
CString GetDriverName() const;
戻り値
システム定義ドライバー名を指定する CString
。
解説
CDC::CreateDC の呼び出しで、GetDriverName
によって返されるCString
オブジェクトへのポインターlpszDriverNameの値として使用します。
CPrintDialogEx::GetPortName
DoModal または GetDefaults を呼び出して、現在選択されているプリンター ポートの名前を取得した後、この関数を呼び出します。
CString GetPortName() const;
戻り値
現在選択されているプリンター ポートの名前。
CPrintDialogEx::GetPrinterDC
プリンター デバイス コンテキストへのハンドルを返します。
HDC GetPrinterDC() const;
戻り値
プリンター デバイス コンテキストへのハンドル。
解説
デバイス コンテキストの使用が完了したら、Windows DeleteDC 関数を呼び出して削除する必要があります。
CPrintDialogEx::m_pdex
ダイアログ オブジェクトの特性を格納するメンバーを持つ PRINTDLGEX 構造体。
PRINTDLGEX m_pdex;
解説
CPrintDialogEx
オブジェクトを作成した後、m_pdex
を使用して、DoModal メンバー関数を呼び出す前に、ダイアログ ボックスのさまざまな側面を設定できます。 m_pdex
構造の詳細については、Windows SDK の「PRINTDLGEX」を参照してください。
m_pdex
データ メンバーを直接変更する場合は、既定の動作をオーバーライドします。
CPrintDialogEx::P rintAll
DoModal
を呼び出した後、この関数を呼び出して、ドキュメント内のすべてのページを印刷するかどうかを判断します。
BOOL PrintAll() const;
戻り値
文書内のすべてのページを印刷する場合は TRUE。それ以外の場合は FALSE。
CPrintDialogEx::P rintCollate
DoModal
を呼び出した後、この関数を呼び出して、プリンターが文書のすべての印刷コピーを照合する必要があるかどうかを判断します。
BOOL PrintCollate() const;
戻り値
ユーザーがダイアログ ボックスで照合チェック ボックスをオンにした場合は TRUE。それ以外の場合は FALSE。
CPrintDialogEx::P rintCurrentPage
DoModal
を呼び出した後、この関数を呼び出して、ドキュメント内の現在のページを印刷するかどうかを判断します。
BOOL PrintCurrentPage() const;
戻り値
印刷ダイアログで 現在のページの印刷 が選択されている場合は TRUE、それ以外の場合は FALSE。
CPrintDialogEx::P rintRange
DoModal
を呼び出した後、この関数を呼び出して、文書内のページの範囲のみを印刷するかどうかを判断します。
BOOL PrintRange() const;
戻り値
文書内のページの範囲のみを印刷する場合は TRUE。それ以外の場合は FALSE。
解説
指定したページ範囲は、m_pdexから決定できます (Windows SDK の PRINTDLGEX 構造体のnPageRanges
、nMaxPageRanges
、およびlpPageRanges
を参照)。
CPrintDialogEx::P rintSelection
DoModal
を呼び出した後、この関数を呼び出して、現在選択されている項目のみを印刷するかどうかを判断します。
BOOL PrintSelection() const;
戻り値
選択した項目のみを印刷する場合は TRUE。それ以外の場合は FALSE。