Impression

c2millet Messages postés 198 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 15 février 2005 - 12 déc. 2003 à 10:37
c2millet Messages postés 198 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 15 février 2005 - 12 déc. 2003 à 12:12
Hello

Voilà mon pb: je suis une jeune recrue du C++ qui a créé un projet avec une CFormView. Je veux imprimer ce que j'ai à l'écran. Mais ce que j'ai fait ne fonctionne pas. Si qqun peut me dire pkoi

Merci

void CDevGraphiqueView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
pDC->SetMapMode(MM_TWIPS);
OnDraw(pDC);
}

Cmill

4 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
12 déc. 2003 à 11:37
Je ne sais pas si tu as vu la réponse que j'avais mis sur ton précédent message. Mais en mode MM_TWIPS, les coordonnées selon y sont négatives vers le bas et le coin en haut à gauche a pour coordonnées (0,0). C'est vrai qu'n général on peut imprimer en appelant OnDraw mais dans la plupart des cas, il faut écrire une nouvelle fonction (la résolution d'un écran n'est pas la même que sur une imprimante) et faire des tests de base.

Au fait, c'est quoi que tu dois imprimer (du texte, une image, un graphique...)
0
c2millet Messages postés 198 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 15 février 2005
12 déc. 2003 à 11:49
Salut g bien lu ton message d'hier, d'ailleur merci.
Mais, je comprend pas vraiment le principe pour imprimer.
En fait g créé un projet avec une CformView sous un projet SDI ou g plusieur graphiques affiché à l'écran. Et je voudrais en avoir l'apercu et les imprimer.
Cmill
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
12 déc. 2003 à 12:08
OK, donc normalement, MFC gère automatiquement l'aperçu avant impression et l'impression avec l'apel à la même fonction OnPrint.

En fait pour imprimer, tu dessine simplement dans le DC qu'on te fourni (pDC) en utilisant les même fonction que pour dessiner à l'écran.

En utilisant le mode MM_TWIPS (c'est ce que j'ai lu dans le bouquin "Visual C++ 6" de "le Tout en poche" pour 10 euros), tu peut controler la taille réelle de ton dessin (en pouce ou en mm)

Pour dessiner tes graphique, je pense qu'il va falloir les redessiner en fonction de la taille d'une page :

int cx = 1440 * pDC->GetDeviceCaps(HORZRES) / pDC->GetDeviceCaps(LOGPIXELSX);
int cy = 1440 * pDC->GetDeviceCaps(VERTRES) / pDC->GetDeviceCaps(LOGPIXELSY);

Ex pour tracer un cadre autour de la page :
pDC->Rectangle(0, 0, cx, -cy);
0
c2millet Messages postés 198 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 15 février 2005
12 déc. 2003 à 12:12
ok ça je comprend
mais après je fais comment pour installer mes graph dans la page d'impression
Cmill
0
Rejoignez-nous