En-têtes et pieds de page
Cet article explique comment ajouter des en-têtes et pieds de page à un document imprimé.
Lorsque vous consultez un document sur l'écran, le nom du document et votre emplacement actuel dans le document sont fréquemment affichent dans la barre de titre et une barre d'état.En recherchant une copie imprimée d'un document, il est utile d'avoir le nom et le numéro de page affichés dans un en-tête ou un pied de page.Il s'agit d'une méthode courante dont même les programmes WYSIWYG diffèrent dans la manière dont ils exécutent l'impression et l'écran.
La fonction membre d' OnPrint est l'endroit approprié pour imprimer des en-têtes ou les pieds de page car elle est appelée pour chaque page, et parce qu'elle est appelée uniquement pour imprimer, pas pour l'écran.Vous pouvez définir une fonction séparée pour imprimer un en-tête ou un pied de page, et le passer le contexte de périphérique d'impression d' OnPrint.Vous devrez peut-être ajuster l'origine ou l'étendue de fenêtre avant d'appeler OnDraw pour éviter de provoquer se chevaucher le corps de la page l'en-tête ou un pied de page.Vous devrez peut-être modifier OnDraw car la quantité de le document qui tient sur la page peut être réduite.
Une façon de compenser la zone occupée par l'en-tête ou un pied de page est d'utiliser le membre de m_rectDraw de CPrintInfo.Chaque fois qu'une page est imprimée, ce membre est initialisé avec la zone utilisable de la page.Si vous imprimez un en-tête ou un pied de page avant l'impression le corps de la page, vous pouvez réduire la taille du rectangle stocké dans m_rectDraw pour expliquer la zone occupée par l'en-tête ou un pied de page.Ensuite OnPrint peut faire référence à m_rectDraw pour vérifier la quantité de zone reste pour imprimer le corps de la page.
Vous ne pouvez pas imprimer un en-tête, ou de tout autre élément, d' OnPrepareDC, car il est appelé avant que la fonction membre d' StartPage de CDC ait été appelée.À ce stade, le contexte de périphérique d'impression est considéré comme à une limite de page.Vous pouvez exécuter imprimer uniquement de la fonction membre d' OnPrint .