- printerframework_src.zip
- Devp
- Bin
- Printer.dll
- Test.exe
- Include
- Lib
- Sources
- Printer
- Doc
- AccentCesure.sty
- html
- Image
- ArchitectureMFC.png
- MFC.png
- PreviewRefactor.png
- PrinterPath.png
- PrintMfc.png
- PrintRefactor.png
- UMLPrinter.png
- IntroPrinter.doc
- Licence
- MAKEDOC.BAT
- MAKEPDF.BAT
- MAKEPS.BAT
- manual.pdf
- printer.dox
- printer.log
- printer.tag
- Readme.txt
- Sources
- Test
|
/*!
*********************************************************************
* \file : PrinterAbstract.h
*
* \b Package : dll Printer
*
* \b Author : Thomas Montembault, Code bas� sur un article
*
* \b Date : 15/03/02
*
* \b Objet : Un objet qui regroupe le canevas commun � une impression
* graphique et � une impression texte.
*
*
*********************************************************************
* \par Version History:
*
* @li V 0.10 15.03.02 Cr�ation
* @li V 0.20 24.03.02 Clarification du r�le de la classe commune pour
* impression texte / impression graphique
* @li V 0.30 24.03.02 Fixation des signatures des m�thodes d'impression
* @li V 0.40 05.04.02 Ajout du support de la pr�visualisation 'hors passage'
* des MFC.
* @li V 0.20 10.05.02 Ajout des m�thodes de personalisation (Margin, size, etc..)
* @li V 0.20 10.05.02 D�finition d'un header et footer par d�fault =>
* void PrintPageHeader(CDC *pDC, CPrintInfo *pInfo);
* void PrintPageFooter(CDC *pDC, CPrintInfo *pInfo);
* @li V 0.30 16.04.02 DocTextation
*
*********************************************************************
*
*/
#ifndef AFX_PRINTERABSTRACT_H__E3E10A6D_2564_4DD0_8517_DC254B4749E9__INCLUDED_
#define AFX_PRINTERABSTRACT_H__E3E10A6D_2564_4DD0_8517_DC254B4749E9__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "ExportPrinter.h"
#include "PrinterXcpt.h"
#include "DataPrint.h"
namespace printer {
//! Code commum � une impression texte et � une impression graphique.
/*! La classe regroupe le framework commun utilis� pour obtenir une impression
texte et une impression graphique.
*/
class _PRINTER_DLLAPI CPrinterAbstract
{
friend class CViewPrintPreview; /*!< Pour initialiser les 'private' de la pr�visualisation */
public:
/*! \par Objet :
Constructeur
\warning A cause du linkage dans la dll (???) , il faut un constructeur
malgr�s les virtuelles pures...
*/
CPrinterAbstract(UINT IDR_MENU);
/*! \par Objet :
Destructeur
*/
virtual ~CPrinterAbstract();
//@{
/*! \name Impression et Pr�visualisation
//
// Les m�thodes suivantes doivent �tre appel�es sur les messages,
// ID_FILE_PRINT_DIRECT, ID_FILE_PRINT et ID_FILE_PRINT_PREVIEW.
//*/
/*! \par Objet :
Affichage de la bo�te d'impression standard et impression de la fen�tre.
*/
void Print();
/*! \par Objet :
Pr�visualisation de la fen�tre.
*/
void Preview();
//@}
//@{
/*! \name Personnalisation de l'impression
//
// Les m�thodes suivantes permettent de configurer l'impression et
// la bo�te de dialogue associ�e.
//*/
/*! \par Objet :
Sp�cification de la fen�tre de travail
\param pWnd : Un pointeur sur la fen�tre � imprimer ou recopier
*/
void SetWindow(CWnd* pWnd);
/*! \par Objet :
Sp�cification du nom du job dans la file d'impression
\param lpszTitleDoc : Le titre du docText dans la file d'impression
*/
void SetTitleDoc(LPCTSTR lpszTitleDoc);
/*! \par Objet :
Sp�cification des marges. Il s'agit de marges supl�mentaires en plus de
celles physiques impos�es par le support. Elles sont exprim�es en nombre de
caract�res moyens.
\param nLeft : marge gauche
\param nTop : marge haute
\param nRight : marge droite
\param nBottom : marge basse
*/
void SetMargins(int nLeft, int nTop, int nRight, int nBottom);
/*! \par Objet :
Sp�cification de la premi�re page apparaissant dans le dialogue d'impression.
\param nPage : Le num�ro de la page
*/
void SetMinPage(int nPage);
/*! \par Objet :
Sp�cification de la derni�re page apparaissant dans le dialogue d'impression.
\param nPage : Le num�ro de la page
*/
void SetMaxPage(int nPage);
/*! \par Objet :
Sp�cification de la taille de la police utilis�e pour l'impression.
\param nSize : La taille de la police
\warning Cette taille intervient �galement pour le calcul des marges, hauts
et bas de pages : ils s'expriment en nombre de caract�res moyens.
*/
void SetPoliceSize(int nSize);
/*! \par Objet :
Accesseur
\return Le nom du job dans la file d'impression
*/
LPCTSTR GetTitleDoc() const;
//@}
//@{
/*! \name Ent�te et bas de page
//
// D�finition de du bas et du haut de page.
//*/
/*! \par Objet :
Pour chaque page, Impression de l'ent�te.
Le principe de fonctionnement est le suivant : OnPrint est charg�e de
l'impression de la page courante, elle se contente d'un appel aux 3 m�thodes
virtuelles, PrintPageHeader, PrintPageFooter et PrintPage (m�thode retard�e).
PrintPageHeader propose une impl�mentation par d�faut qui utilise une marge
haute de 2 caract�res. L'ent�te se compose simplement du titre donn� par
SetTitleDoc et d'une ligne de s�paration.
\param pPrinter : Un pointeur sur l'objet charg� de l'impression
\param pDC : Un pointeur sur le contexte (�cran ou imprimante)
\param pInfo : Un pointeur sur les param�tres d'impression
*/
virtual void PrintPageHeader(CPrinterAbstract* pPrinter, CDC *pDC, CPrintInfo *pInfo);
/*! \par Objet :
Pour chaque page, Impression du bas de page.
Le principe de fonctionnement est le suivant : OnPrint est charg�e de
l'impression de la page courante, elle se contente d'un appel aux 3 m�thodes
virtuelles, PrintPageHeader, PrintPageFooter et PrintPage (m�thode retard�e).
PrintPageFooter propose une impl�mentation par d�faut qui utilise une marge
basse de 2 caract�res. Le bas de page se compose simplement d'une ligne de
s�paration suivi par le nombre page � gauche et la date d'impression �
droite.
\param pPrinter : Un pointeur sur l'objet charg� de l'impression
\param pDC : Un pointeur sur le contexte (�cran ou imprimante)
\param pInfo : Un pointeur sur les param�tres d'impression
*/
virtual void PrintPageFooter(CPrinterAbstract* pPrinter, CDC *pDC, CPrintInfo *pInfo);
//@}
//@{
/*! \name Utilitaires pour surcharge Header & Footer ...
//*/
/*! \par Objet :
Accesseur
\return Un pointeur sur la fen�tre � imprimer.
*/
CWnd* GetWindow() const;
/*! \par Objet :
Accesseur
\return La page courante sous la forme ; "page nCur/nMax"
*/
CString GetPage(CPrintInfo *pInfo );
/*! \par Objet :
Accesseur
\return La date syst�me.
*/
CString GetDate (void);
/*! \par Objet :
Accesseur
\return La structure SDataPrint associ�e � l'objet d'impression.
*/
SDataPrint* GetDataPrint();
/*! \par Objet :
Accesseur
\param value : Un bool�en qui indique si l'impression
a lieu depuis l'aper�u.
*/
void SetPrintFromPreview(bool value);
/*! \par Objet :
Cr�ation d'une police.
\param pFont : Un pointeur sur la police a cr��
\param pDC : Un pointeur sur le contexte
\param size : La taille de la police
\param nWeight : La graisse de la police
*/
void InitFont(CFont* pFont, CDC* pDC, int size, int nWeight);
//@}
protected:
//@{
/*! \name Encapsulation du framework MFC
//
// Les m�thodes suivantes ont la m�me signature et la m�me signification
// que celles de CView. Print et Preview ont �t� r��crites pour utiliser ces
// m�thodes.
//*/
/*! \par Objet :
Calcul du nombre de pages, Initialisation du contexte.
\param pInfo : Un pointeur sur le param�trage du contexte
\exception NON
*/
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo)=0;
/*! \par Objet :
Initialisation du contexte suite.
\param pDC : Un pointeur sur le contexte
\param pInfo : Un pointeur sur le param�trage du contexte d'impression
\exception OUI
*/
virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)=0;
/*! \par Objet :
Impression de la page courante. Elle se contente d'un appel aux 3 m�thodes
virtuelles, PrintPageHeader, PrintPageFooter et PrintPage (m�thode retard�e).
\param pDC : Un pointeur sur le contexte
\param pInfo : Un pointeur sur le param�trage du contexte
\exception OUI
*/
virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo);
/*! \par Objet :
Impression de la partie utilisateur de la page courante. Elle est appel�e
par OnPrint apr�s les appels de PrintPageHeader et PrintPageFooter.
\param pDC : Un pointeur sur le contexte d'impression.
\param pInfo : Un pointeur sur le param�trage du contexte d'impression
\exception OUI
*/
virtual void PrintPage(CDC *pDC, CPrintInfo *pInfo) = 0;
/*! \par Objet :
Nettoyage du contexte d'impression et lib�ration des ressources.
\param pDC : Un pointeur sur le contexte d'impression.
\param pInfo : Un pointeur sur le param�trage du contexte d'impression
\exception OUI
*/
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo)=0;
//@}
private:
/*! \par Objet :
Accesseur
\return Le num�ro de la premi�re page � imprimer.
*/
int GetMinPage() const;
/*! \par Objet :
Accesseur
\return Le num�ro de la derni�re page � imprimer.
*/
int GetMaxPage() const;
int m_nMinPage; /*!< Le nombre minimum de page */
int m_nMaxPage; /*!< Le nombre maximum de page */
CWnd* m_pWnd; /*!< Un pointeur sur la fen�tre � copier */
CString m_strTitleDoc; /*!< Le titre du job dans la file d'impression */
CSingleDocTemplate* m_pTemplate; /*!< DocTemplate pour construire une nouvelle vue de pr�visualisation */
UINT m_IDR_MENU; /*!< La ressource �quivalent � IDR_MAINFRAME (128 g�n�ralement) */
CPrinterXcpt m_exceptInPrintPreview; /*!< Un objet pour r�cup�rer une exception */
SDataPrint m_dataPrint; /*!< Une structure SDataPrint */
bool m_bPrintFromPreview; /*!< Marquer le passage Preview -> Print */
};
}
#endif // !defined(AFX_PRINTERABSTRACT_H__E3E10A6D_2564_4DD0_8517_DC254B4749E9__INCLUDED_)
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.