universaliss
Messages postés5Date d'inscriptionsamedi 23 août 2008StatutMembreDernière intervention17 mars 2011
-
15 mars 2011 à 17:23
universaliss
Messages postés5Date d'inscriptionsamedi 23 août 2008StatutMembreDernière intervention17 mars 2011
-
17 mars 2011 à 10:56
Bonjour,
Je suis actuellement bloqué dans le développement d'un petit programme en mode SDI.
Je suis actuellement face à mon CView sur lequel je peux dessiner, une sorte d'ersatz de paint qui me permet de sauvegarder mes dessins et de les rouvrir.
Au moment de l'imprimer : SURPRISE !!!! le dessin est tout petit j'ai un problème de dimensionnement de mon CView surement dans le oninitialupdate() (peut être que je me trompe complètement...)
Je souhaiterai savoir qu'elle est la démarche pour pouvoir afficher un mon CView et avoir entièrement mais uniquement ma page a4 (voir a4 ou a5).
je pensais passer par une fonction du style :
GetParentFrame()->SetWindowPos(NULL,0,0,200,300,SWP_NOZORDER|SWP_NOMOVE);
mais d'une part les dimensions sont bien entendus mauvaises mais cela ne redimensionne que le frame "conteneur" qui en plus est étirable à volonté donc cela ne résout en rien le problème.
Pour simplifier je souhaiterai obtenir ma page à l'écran telle qu'elle sortira à l'imprimante.
Comment faire ? Quelles valeurs utiliser? quelle fonction?
ed73
Messages postés276Date d'inscriptionlundi 8 septembre 2008StatutMembreDernière intervention15 avril 20132 16 mars 2011 à 14:51
Bonjour,
Il est normal que ton dessin soit tout petit sur l'imprimante si tu raisonnes en pixels. Il faut dessiner en fonction de la résolution de ta page, résolution qui peut varier selon l'imprimante ou sa configuration. L'idéal étant d'avoir le même code pour dessiner et pour imprimer en tenant compte de la taille et de la résolution de la page ou de l'écran.
universaliss
Messages postés5Date d'inscriptionsamedi 23 août 2008StatutMembreDernière intervention17 mars 2011 16 mars 2011 à 16:50
merci pour ta réponse mais ces fonctions ne me permettent pas d'arriver au résultat voulu (peut être que je les utilisent mal mais c'est pas encore ça)
ces fonctions m'ont permis de modifier l'orientation et le positionnement des axes de référence mais j'ai toujours le même petit résultat en impression donc j'ai fais machine arrière.
peut être devrai-je m'orienté vers :
OnPreparePrinting, on begin et on end printing
des fonction qui sont encore dépourvues de code ... mais qu'en faire?
De plus je n'arrive toujours pas a restreindre mon cview à une certaine dimension (une page a4) il est toujours infini...
toujours dans l'impasse...
Si quelqu'un a ne serait ce qu'un morceau de code qui dessine un cadre d'un format a4 ça serait idéal pour comprendre tout ça...
D'avance merci !
cs_louis14
Messages postés793Date d'inscriptionmardi 8 juillet 2003StatutMembreDernière intervention10 février 20218 17 mars 2011 à 09:51
Bonjour,
Il faut chercher de l'aide sur MSDN pour la fonction IsPrinting() qui 'il faut utiliser dasn la fonction OnDrw() de ta CView.
Voilà un morceau de code que j'ai dasn un de mes projet:
if (pDC->IsPrinting())
{
rect.left rect.top 0;
rect.right = pDC->GetDeviceCaps(HORZRES);
rect.bottom = pDC->GetDeviceCaps(VERTRES);
m_Graph.SetPrintScale(pDC->m_hDC, rect);
}
else
GetClientRect(rect);