Bonjour,
J'aimerais savoir comment faire pour imprimer une vue (et non un fichier image bmp).
Julien.
Bonjour,
J'aimerais savoir comment faire pour imprimer une vue (et non un fichier image bmp).
Julien.
une CFormView ne s'imprime pas ,sauf à utiliser l'impression par un bitmap de la form comme dans la faq (c'est une dialog, mais c'est pareil):
http://c.developpez.com/faq/vc/?page...PrintDialgoBox
si c'est une CView, si tu sais la dessiner tu sais l'imprimer :
http://c.developpez.com/faq/vc/?page...HowToPrintView
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
C'est une view que je veux imprimer : je la dessine bien avec OnDraw mais lorsque j'utilise la fonction "imprimer" par défaut, Visual C++ m'imprime la view en tout petit et je la voudrais en plein écran.
En parcourant le forum et la faq, j'ai essayé de modifier les fonctions OnFilePrint et OnBeginPrinting et de rajouter cela
mais ça ne marche pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 pInfo->m_rectDraw.SetRect(0, 0, pDC->GetDeviceCaps(HORZRES), pDC->GetDeviceCaps(VERTRES));
ton mapmode est bien MM_TEXT ?
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
je n'avais pas mis le SetMapMode à MM_TEXT, j'ai donc rajouté
dans OnDraw mais ça ne change rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part pDC->SetMapMode(MM_TEXT);
alors si tout est ok ,tu dois te planter dans ton dessin.
celui-ci ne tient pas compte de la surface disponible...
sans voir le code on ne peut rien dire de plus.
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Pour tenir compte de la surface disponible, j'utilise GetClientRect et ensuite je dessine en utilisant lpRect
c'est bien ça qu'il faut faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CRect lpRect; this->GetClientRect(lpRect); // exemple de tracé dans le dessin pDC->MoveTo(2*lpRect.right/5,0); pDC->LineTo(2*lpRect.right/5,18);
Que vient faire "lp" dans le nom ?![]()
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
lpRect c'est le nom de l'objet de type CRect, j'aurais pu l'appeler julienRect ou medinocRect ...
Sauf qu'en programmation sous Windows, la convention utilisée dit que "lp" signifie "long pointer" (même si en 32bits, tous les pointeurs sont "longs")...
Donc, tu peux appeler ça julienRect si tu veux, mais pas lpRect ou pRect...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
c'est bien ce que je disais, GetClientRect donne la surface de la fenetre client, pas la surface d'impression de l'imprimante...
il faudra distinguer le cas du dessin à l'ecran et celui de l'edition....
![]()
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
d'accord, et comment peut-on modifier la surface de l'impression de l'imprimante en faisant en sorte qu'elle coincide avec la surface de la fenêtre client ?
non ça ne marche pas comme ça;
c'est toi qui doit adapter ton dessin en fonction de la surface d'impression...
![]()
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Dans ce cas, il faudrait agrandir énormément la taille de mon dessin et ça ne tiendra pas sur mon petit écran 15 pouces : il faudra utiliser des barres de défilement => CScrollView, or moi j'aimerais que mon dessin tienne entièrement sur mon écran, dans la fenêtre client ...
peux-tu me donner davantage de détails, je ne vois pas comment faire.
Partager