ヘッダーとフッター
この記事では、印刷されるドキュメントにヘッダーとフッターを追加する方法について説明します。
画面でドキュメントを見る場合、ドキュメントの名前とドキュメント内の現在の位置は、通常、タイトル バーとステータス バーに表示されます。 ドキュメントの印刷されたコピーを見る場合は、名前とページ番号をヘッダーまたはフッターに表示すると便利です。 これは、WYSIWYG プログラムであっても印刷と画面表示では実行方法が異なる一般的な例です。
OnPrint メンバー関数は、ヘッダーまたはフッターを印刷するための適切な場所です。この関数は、各ページに対して呼び出されますが、画面表示用には呼び出されず、印刷専用に呼び出されるためです。 ヘッダーまたはフッターを印刷するための別の関数を定義し、OnPrint
からプリンター デバイス コンテキストに渡すことができます。 ページの本文がヘッダーまたはフッターと重ならないように、OnDraw を呼び出す前にウィンドウの原点または範囲を調整する必要がある場合があります。 また、ページに収まるドキュメントの量が減る可能性があるため、OnDraw
を変更しなければならない場合があります。
ヘッダーまたはフッターによって占められる領域を補正する方法の 1 つは、CPrintInfo の m_rectDraw メンバーを使用することです。 ページが印刷されるたびに、このメンバーはページの使用できる領域で初期化されます。 ページの本文を印刷する前にヘッダーまたはフッターを印刷する場合は、m_rectDraw に格納されている四角形のサイズを小さくして、ヘッダーまたはフッターによって占められる領域を考慮することができます。 次に、OnPrint
は m_rectDraw を参照して、ページの本文を印刷するために残っている領域の量を確認できます。
ヘッダーも、それ以外のものも、OnPrepareDC からは印刷できません。この関数は、CDC の StartPage
メンバー関数が呼び出される前に呼び出されるためです。 その時点では、プリンター デバイス コンテキストはページ境界にあると見なされます。 印刷は、OnPrint
メンバー関数からのみ実行できます。