Partager via


CView::OnPrint

Appelé par l'infrastructure pour imprimer ou afficher un aperçu d'une page du document.

virtual void OnPrint( 
   CDC* pDC, 
   CPrintInfo* pInfo  
);

Paramètres

  • pDC
    Pointe vers le contexte de périphérique d'impression.

  • pInfo
    Les points à CPrintInfo structure qui décrit le travail d'impression actuelle.

Notes

Pour chaque page est imprimée, l'infrastructure appelle cette fonction immédiatement après l'appel de la fonction membre d' OnPrepareDC . La page est imprimée est spécifiée par le membre d' m_nCurPage de la structure de CPrintInfo laquelle pInfo indique. L'implémentation par défaut appelle la fonction membre d' OnDraw et lui passe le contexte de périphérique d'impression.

Remplacez cette fonction pour chacune des raisons :

  • Pour permettre l'impression de documents multipages. Afficher uniquement la partie du document qui correspond à la page actuellement imprimée. Si vous utilisez OnDraw pour effectuer le rendu, vous pouvez régler l'origine de la fenêtre d'affichage afin que seule la partie appropriée du document impression.

  • Pour rendre l'image imprimée recherchez différent de l'image de l'écran (autrement dit, si votre application n'est pas WYSIWYG). Au lieu de passer le contexte de périphérique d'impression à OnDraw, utilisez le contexte de périphérique pour afficher une image à l'aide de attributs non affichés à l'écran.

    Si vous avez besoin des ressources GDI pour l'impression que vous n'utilisez pas pour l'écran, sélectionnez -les dans le contexte de périphérique avant le dessin et désélectionnez- les après. Ces ressources GDI doivent être allouées dans OnBeginPrinting et être libérées dans OnEndPrinting.

  • Pour implémenter des en-têtes ou des pieds de page. Vous pouvez toujours utiliser OnDraw pour effectuer le rendu en limitant la zone qu'il peut être imprimé sur.

Notez que le membre de m_rectDraw du paramètre d' pInfo décrit la zone imprimable de la page en unités logiques.

N'appelez pas OnPrepareDC dans la substitution d' OnPrint; l'infrastructure appelle OnPrepareDC automatiquement avant d'appeler OnPrint.

Exemple

Voici une structure d'une fonction substituée d' 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);
}

Pour obtenir un autre exemple, consultez CRichEditView::PrintInsideRect.

Configuration requise

Header: afxwin.h

Voir aussi

Référence

CView, classe

Graphique de la hiérarchie

CView::OnBeginPrinting

CView::OnEndPrinting

CView::OnPrepareDC

CView::OnDraw