CView::OnPrint
更新 : 2007 年 11 月
ドキュメントのページの印刷またはプレビューのために、フレームワークが呼び出します。
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