次の方法で共有


CView::OnPreparePrinting

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

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 のメンバー