- 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 : FormatString.h
*
* \b Package : dll Printer
*
* \b Author : T. Montembault
*
* \b Date : 03/04/02
*
* \b Objet : Une CString capable de calculer sa taille (nombre de lignes)
* et de s'afficher.
*
*********************************************************************
* \par Version History:
*
* @li V 0.10 03.04.02 Cr�ation
*
*********************************************************************
*
*/
#ifndef AFX_TEXTITEM_H__5E17814C_9A8F_47B2_965D_C9CFD04082B5__INCLUDED_
#define AFX_TEXTITEM_H__5E17814C_9A8F_47B2_965D_C9CFD04082B5__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <vector>
namespace printer {
//! Un CString capable de "s'auto-formater" sur un contexte d'impression.
/*! En fonction d'une longueur fournie et d'un contexte d'impression (=taille
de la police), la classe construit un tableau d'index. Pour chaque
ligne, ces index indiquent quelle partie de la CString s'affiche.
Exemple :
\verbatim
Sur la CString = "Il fait beau aujourd'hui."
qui se formatte ainsi sur un DC :
Il fait beau
aujourd'hui.
On obtient :
m_listFirstLast[0] = (0,11);
m_listFirstLast[1] = (13,24);
\endverbatim
Ensuite les accesseurs permettent de r�cup�rer facilement le nombre de
lignes, le contenu d'une ligne et la longueur d'une ligne.
*/
class CFormatString
{
public:
/*! \par Objet :
Constructeur
strText : Le texte � formater.
*/
CFormatString(const CString& strText);
/*! \par Objet :
Le destructeur
*/
virtual ~CFormatString();
/*! \par Objet :
Initialisation
\param pDC : Un pointeur sur le contexte ou doit se faire l'affichage
\param nLon : La longueur allou�e pour l'affichage
En fonction de ces param�tres et du texte, la m�thode initialise un
tableau qui permet de calculer le nombre de lignes et les index dans la
cha�ne de caract�re pour chaque ligne.
*/
void Initialize(CDC* pDC, int nLon);
/*! \par Objet :
Accesseur
\return Le nombre de lignes.
*/
int GetNbLignes();
/*! \par Objet :
Accesseur
\param nIndex : le num�ro de la ligne
\return La longueur de la sous-cha�ne affich�e � la ligne nIndex.
*/
int GetLength(int nIndex);
/*! \par Objet :
Accesseur
\param nIndex : le num�ro de la ligne
\return La sous-cha�ne affich�e � la ligne nIndex
*/
CString GetSubLigne(int nIndex);
private:
/*! \typedef ListOfFirstLast
Un tableau d'indices.
*/
typedef std::vector< std::pair<int, int> > ListOfFirstLast;
/*! \par Objet
Calcule de l'endroit ou faire la c�sure.
\param pDC : Un pointeur sur le contexte
\param nLon : La longueur
\param strText : Une r�f�rence sur la cha�ne � formatter
\param nFirst : L'indice du premier caract�re
\param nLast : L'indice du dernier caract�re
*/
void static GetCesure(CDC* pDC, int nLon, CString& strText, int& nFirst, int& nLast);
CString m_strText; /*!< Le texte � formater */
ListOfFirstLast m_listFirstLast; /*!< Une liste d'indices */
};
}
#endif // !defined(AFX_TEXTITEM_H__5E17814C_9A8F_47B2_965D_C9CFD04082B5__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.