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