CView::OnPrint
ドキュメントのページの印刷またはプレビューのために、フレームワークが呼び出します。
virtual void OnPrint(
CDC* pDC,
CPrintInfo* pInfo
);
パラメーター
pDC
プリンターのデバイス コンテキストへのポインター。pInfo
現在の印刷ジョブを表す CPrintInfo 構造体へのポインター。
解説
印刷される各ページで、フレームワークは OnPrepareDC メンバー関数を呼び出した直後に、この関数を呼び出します。 印刷されるページは、pInfo で指される CPrintInfo 構造体の m_nCurPage メンバーによって指定されます。 既定の実装では、OnDraw メンバー関数を呼び出して、プリンターのデバイス コンテキストを渡します。
以下のいずれかの理由があるとき、この関数をオーバーライドします。
複数のドキュメントを印刷できるようにするため。 ドキュメントの中で、現在印刷されているページに対応する部分を描画します。 描画を実行するのに OnDraw を使用した場合は、ビューポートの原点を調整して、ドキュメントの適切な部分だけ印刷できます。
画面イメージとは違った印刷イメージを作成するため (つまり、アプリケーションが WYSIWYG ではない場合)。 OnDraw にプリンターのデバイス コンテキストを渡す代わりに、画面に表示されない属性を使ってイメージを描画するために、デバイス コンテキストを使用してください。
画面表示で使わない GDI リソースを印刷のために必要とするときは、描画前にそのリソースをデバイス コンテキストに選択し、実行後に選択解除します。 これらの GDI リソースは、OnBeginPrinting で確保され、CView::OnEndPrinting で解放される必要があります。
ヘッダーとフッターを実装するため。 印刷できる領域を制限して描画するために、OnDraw を使うこともできます。
パラメーター pInfo の m_rectDraw メンバーは、ページの印刷可能領域を論理単位で表していることに注意してください。
オーバーライドした OnPrint で OnPrepareDC を呼び出さないでください。フレームワークは、OnPrint を呼び出す前に自動的に OnPrepareDC を呼び出します。
使用例
以下の例は、オーバーライドされた OnPrint 関数のスケルトンです。
void CMyView::OnPrint(CDC *pDC, CPrintInfo *pInfo)
{
UNREFERENCED_PARAMETER(pInfo);
// Print headers and/or footers, if desired.
// Find portion of document corresponding to pInfo->m_nCurPage.
OnDraw(pDC);
}
別の例については、「CRichEditView::PrintInsideRect」を参照してください。
必要条件
**ヘッダー:**afxwin.h