次の方法で共有


CView::OnPreparePrinting

更新 : 2007 年 11 月

ドキュメントが印刷またはプレビューされる前に、フレームワークが呼び出します。

virtual BOOL OnPreparePrinting(
   CPrintInfo* pInfo 
);

パラメータ

  • pInfo
    現在の印刷ジョブを表す CPrintInfo 構造体へのポインタ。

戻り値

印刷が開始された場合は、0 以外を返します。印刷ジョブがキャンセルされた場合は、0 を返します。

解説

既定の実装では、何も行われません。

印刷および印刷プレビューを有効にするには、この関数をオーバーライドする必要があります。パラメータ pInfo の指定を渡して、DoPreparePrinting メンバ関数を呼び出してください。その後、この関数の戻り値を返します。DoPreparePrinting は [印刷] ダイアログ ボックスを表示し、プリンタのデバイス コンテキストを作成します。既定とは違った値を使って [印刷] ダイアログ ボックスを初期化する場合は、pInfo のメンバに値を設定します。たとえば、ドキュメントの長さがわかっているときは、DoPreparePrinting を呼び出す前に pInfo の SetMaxPage メンバ関数に値を渡してください。この値は、[印刷] ダイアログ ボックスの [印刷する範囲] の [ページまで:] のボックスに表示されます。

DoPreparePrinting は、プレビュー ジョブでは [印刷] ダイアログ ボックスを表示しません。印刷ジョブで [印刷] ダイアログ ボックスが表示されないようにするためには、pInfo の m_bPreview メンバが FALSE であることを調べ、DoPreparePrinting に渡す前に TRUE に設定します。関数の終了後、FALSE に戻します。

プリンタ デバイス コンテキストを表す CDC オブジェクトへのアクセスを要求する初期処理を実行する場合 (たとえば、ドキュメントの長さを指定する前に、ページサイズを知りたいときなど) は、OnBeginPrinting メンバ関数をオーバーライドしてください。

m_nNumPreviewPages メンバまたは m_strPageDesc メンバのパラメータ pInfo に値を設定するときは、先に DoPreparePrinting を呼び出してください。DoPreparePrinting メンバ関数は、m_nNumPreviewPages をアプリケーションの .INI ファイルで得た値に設定し、m_strPageDesc を既定値に設定します。

使用例

フレームワークが [印刷] ダイアログ ボックスを表示してプリンタ DC を作成するように、OnPreparePrinting をオーバーライドし、DoPreparePrinting を呼び出します。

BOOL CMyEditView::OnPreparePrinting(CPrintInfo* pInfo)
{
   return CEditView::DoPreparePrinting(pInfo);
}

ドキュメントのページ数がわかっている場合は、DoPreparePrinting を呼び出す前に、OnPreparePrinting で最大ページ数を設定します。フレームワークは、[印刷] ダイアログ ボックスの [ページまで] ボックスで最大ページ数を表示します。

BOOL CExampleView::OnPreparePrinting(CPrintInfo* pInfo)
{
   //The document has 2 pages.
   pInfo->SetMaxPage(2);
   return CView::DoPreparePrinting(pInfo);
}

必要条件

ヘッダー : afxwin.h

参照

参照

CView クラス

階層図

CPrintInfo 構造体

CView::DoPreparePrinting

CView::OnBeginPrinting

CView::OnPrepareDC

CView::OnPrint

その他の技術情報

CView のメンバ