|| Imprimer || RichEdit || C++ || Visual 6 || >>

Résolu
cs_joh Messages postés 54 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 6 juin 2005 - 23 févr. 2005 à 10:12
cs_joh Messages postés 54 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 6 juin 2005 - 25 févr. 2005 à 09:28
Je suis entrain de developper une sorte de WordPad sous VisuaC++ 6 en utilisant un RichEdit.

Mon probleme est au niveau de l'impression,car si j ecrit en gras ds le RichEdit l'imprimante ne le sait pas que se mot est en gras,j ai developper des fonctions me permettant de savoir si un mot ou un caractere est souligner,gras ou italique et j aimerai savoir comment faire pour testé caractere par caractere tapé ds le RichEdit lors de l'envoie de l'impression a fin de lui spécifier le format de chaque caractère
(Me faudrait une sorte de RichEdit.GetCaratere( ) ,il y en a pas car si je stock tout le texte dans un ex:CString je perd les différents format (Gras,Police,taille,italique,......) ).

Joh

2 réponses

cs_joh Messages postés 54 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 6 juin 2005
25 févr. 2005 à 09:28
Salut, merci pour de ton aide mais j ai trouver une solution un peut bourrin mais qui marche !!! .
Passe une bonne journée et surtout un bon week end !!!!
joh

Code:

.....
CString sBuffer;
int iformat ; long iDeb 0, iFin 1, iFinN = 0, iNbCara = 0;
bool RetourChariot ;
iNbCara = m_ctrlREdit.GetTextLength( );


for( iDeb=0 ; iDeb= 1) && (RetourChariot == false) )
{
r2.left = r2.left + lTaille + 1;
dc.DrawText(sBuffer, sBuffer.GetLength(), r2, DT_LEFT|DT_WORDBREAK);
}else if(ReChar == true)
{
r2.left = 0 ;
r2.top = r2.top + lTaille + 1 ;
dc.DrawText(sBuffer, sBuffer.GetLength(), r2, DT_LEFT|DT_WORDBREAK);
}else
dc.DrawText(sBuffer, sBuffer.GetLength(), r2, DT_LEFT|DT_WORDBREAK);
}
iFin ++ ;
}

////////////////////////////////////////////
// Test si le mot selectionné est en Gras .
void CMailing::Gras()
{
CHARFORMAT2 cfa ;
m_ctrlREdit.GetSelectionCharFormat(cfa);
int iFormat = cfa.dwEffects ;


if((iFormat GRAS)||(iFormat G_S)||(iFormat == G_I)||(iFormat == G_I_S))
iGras = 1;
else
iGras = 0;
}


////////////////////////////////////////////////
// Test si le mot selectionné est en Italique .
void CMailing::Italique()
{
CHARFORMAT2 cfa ;


m_ctrlREdit.GetSelectionCharFormat(cfa);
int iFormat = cfa.dwEffects ;


if((iFormat ITA)||(iFormat S_I)||(iFormat == G_I)||(iFormat == G_I_S))
iItalique = 1;
else
iItalique = 0;
}


//////////////////////////////////////////////
// Test si le mot selectionné est Souligner .
void CMailing::Souligner()
{
CHARFORMAT2 cfa ;


m_ctrlREdit.GetSelectionCharFormat(cfa);

int iFormat = cfa.dwEffects ;


if((iFormat SOUL)||(iFormat G_S)||(iFormat == S_I)||(iFormat == G_I_S))
iSouligner = 1;
else
iSouligner = 0;
}


//////////////////////////////////
// Récupérer la taille du Texte .
void CMailing::TailleduText()
{
CHARFORMAT2 cfa ;
m_ctrlREdit.GetSelectionCharFormat(cfa);
lTaille = cfa.yHeight;
}


/////////////////////////
// Récupérer la Police .
void CMailing::PoliceduText()
{
CHARFORMAT2 cfa ;
m_ctrlREdit.GetSelectionCharFormat(cfa);
sPolice = cfa.szFaceName ;
}
3
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
24 févr. 2005 à 18:33
Salut joh,

ya peut-être une astuce que je te propose.
Tu enregistres ce que tu as dans ton RichEdit au format RTF, et le fichier que tu as ainsi créé tu l'imprimes avec :

ShellExecute(NULL, "print", NomDuFichier, NULL, NULL, SW_HIDE);

Tiens-moi au courant.

YOYO, @+.
YOYO
0
Rejoignez-nous