afavre69
Messages postés6Date d'inscriptionsamedi 1 mars 2008StatutMembreDernière intervention13 octobre 2008
-
28 août 2008 à 11:06
afavre69
Messages postés6Date d'inscriptionsamedi 1 mars 2008StatutMembreDernière intervention13 octobre 2008
-
3 sept. 2008 à 17:12
Bonjour,
Dans mon appli, j'ai un petit bouton Print me permettant d'imprimer une chaine de caractères.
Ma fonction marche parfaitement si le texte a imprimer ne dépasse pas 1 page.
Ma fonction, doit normalement calculer combien de texte je peut mettre sur une page. Dans le cas ou mon texte est plus long, alors une deuxième page est imprimée (ou plus si nécessaire), mais répète le début de mon texte et non la suite, mais par contre, la longueur du texte imprimé est bonne.
afavre69
Messages postés6Date d'inscriptionsamedi 1 mars 2008StatutMembreDernière intervention13 octobre 2008 28 août 2008 à 17:28
Bonjour Juju12 et Merci d'avoir prix le temps de consulter mon message.
En faite c'est prt et non prt2 qui est un TCHAR. et je ne vois pas comment incrementer un TCHAR. je devrais sans doute passer par le pointeur pText, mais je ne vois pas comment faire la relation entre mon prt et mon pointeur.
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 28 août 2008 à 20:40
TCHAR szwText[]=__TEXT("Voila le texte à imprimer etc..."); // ou bien un pointeur sur le texte à imprimer
DWORD dwSize=...;
LPTSTR pText=szwText;
LPTSTR pEnd=szwText+dwSize;
bOk = StartDoc( hDC, &di );
while((bOk)&&(pText < pEnd))
{
StartPage(hDC);
SetRect(&rc, rcPage.left,rcPage.top,rcPage.right,rcPage.top);
count = 0;
// on calcule d'abord la longueur de texte contenu dans une page
while((rc.bottom<rcPage.bottom)&&(pText+ count < pEnd))
{
rc.right = rcPage.right;
DrawText(hDC, pText, count++, &rc,DT_CALCRECT|DT_NOCLIP|DT_WORDBREAK|DT_EXPANDTABS);
}
// on ajuste la hauteur de la page
if(rc.bottom>=rcPage.bottom) count--;
// on imprime la page
DrawText(hDC, pText, count, &rc,DT_NOCLIP|DT_WORDBREAK|DT_EXPANDTABS);
pText += count;
bOk = EndPage(hDC);
}
afavre69
Messages postés6Date d'inscriptionsamedi 1 mars 2008StatutMembreDernière intervention13 octobre 2008 1 sept. 2008 à 18:49
Bon,
Super ça marche mais j'ai un problème maintenant d'allocation mémoire qui me plante l'appli après l'impression.
Voici les trois parties de code :
Ici, le bouton print qui envoi des info dans un editbox caché (prt est défini en temps que TCHAR [10000] je ne sais pas comment lui donner une valeur variable pour le remplir:
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 2 sept. 2008 à 20:50
Content que ça marche;
Puis-je te conseiller de poser ta nouvelle question dans un nouveau post?
raison principale : celui-ci n'apparaît plus je pense dans la liste, et pour ma part je vais être coupé d'Internet pour une durée indéterminée...