Kopf- und Fußzeilen
In diesem Artikel wird erläutert, wie Sie einem gedruckten Dokument Kopf- und Fußzeilen hinzufügen.
Wenn Sie ein Dokument auf dem Bildschirm betrachten, werden der Name des Dokuments und ihre aktuelle Position im Dokument häufig in einer Titelleiste und einer Statusleiste angezeigt. Wenn Sie eine gedruckte Kopie eines Dokuments betrachten, ist es nützlich, den Namen und die Seitenzahl in einer Kopf- oder Fußzeile anzuzeigen. Dies ist eine gängige Methode, bei der auch WYSIWYG-Programme bei der Ausführung von Druck- und Bildschirmanzeigen unterschiedlich sind.
Die OnPrint-Memberfunktion ist die geeignete Stelle zum Drucken von Kopf- oder Fußzeilen, da sie für jede Seite aufgerufen wird, und da sie nur zum Drucken aufgerufen wird, nicht für die Bildschirmanzeige. Sie können eine separate Funktion zum Drucken einer Kopf- oder Fußzeile definieren und ihn an den Druckergerätekontext OnPrint
übergeben. Möglicherweise müssen Sie den Fensterursprung oder -umfang anpassen, bevor Sie OnDraw aufrufen, um zu vermeiden, dass der Textkörper der Seite die Kopf- oder Fußzeile überlappt. Möglicherweise müssen Sie auch ändern OnDraw
, da die Größe des Dokuments, das auf die Seite passt, reduziert werden kann.
Eine Möglichkeit zum Ausgleich des Bereichs, der von der Kopf- oder Fußzeile eingenommen wird, besteht darin, das m_rectDraw Mitglied von CPrintInfo zu verwenden. Jedes Mal, wenn eine Seite gedruckt wird, wird dieses Element mit dem verwendbaren Bereich der Seite initialisiert. Wenn Sie vor dem Drucken des Textkörpers der Seite eine Kopf- oder Fußzeile drucken, können Sie die Größe des in m_rectDraw gespeicherten Rechtecks verringern, um den Bereich zu berücksichtigen, der von der Kopf- oder Fußzeile genommen wird. Dann OnPrint
können Sie auf m_rectDraw verweisen, um herauszufinden, wie viel Bereich wieder Standard zum Drucken des Textkörpers der Seite.
Sie können eine Kopfzeile oder nichts anderes von OnPrepareDC drucken, da sie aufgerufen wird, bevor die StartPage
Memberfunktion von CDC aufgerufen wurde. Zu diesem Zeitpunkt gilt der Druckergerätekontext als an einer Seitengrenze. Sie können das Drucken nur über die OnPrint
Memberfunktion ausführen.