IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

MFC : Probl�mes d'impression...


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    29
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 29
    Par d�faut MFC : Probl�mes d'impression...
    Bonjour,

    Ca fait plusieurs jours que je gal�re sur ce probl�me et je sais plus trop o� donner de la t�te...

    1) Je dessine un rectangle de dimensions fixes (x, y) dans une CScrollView.

    2) Je lance l'impression de la vue par la m�thode conventionnelle (OnPreparePrinting, OnBeginPrinting, OnPrint ...)

    Au final, j'obtiens un r�sultat diff�rent suivant les imprimantes sur lesquelles j'imprime.
    En effet, mon rectangle ne poss�de jamais les m�mes dimensions et je comprends pas du tout pourquoi

    En th�orie, les propri�t�s du Printer ne doivent pas avoir une influence sur la taille de l'objet � imprimer ...

    Si vous avez une id�e...

    Merci d'avance,
    ++

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    29
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 29
    Par d�faut
    Pour plus de pr�cisions, voici le code

    Dans ma vue :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    //Prepare Printing
    BOOL CMyView::OnPreparePrinting(CPrintInfo* pInfo)
    {
    return DoPreparePrinting(pInfo);
    }
     
    // DoPreparePrinting
    BOOL CMyView::DoPreparePrinting(CPrintInfo* pInfo)
    {
    pInfo->m_nOffsetPage = 0;
    pInfo->SetMaxPage (1);
    return CView::DoPreparePrinting (pInfo);
    }
     
    // Print
    void CMyView::OnPrint( CDC *pDC, CPrintInfo *pInfo )
    {
    pInfo->m_rectDraw.SetRect(0,0,	pDC->GetDeviceCaps(HORZRES),pDC->GetDeviceCaps(VERTRES));
     
    OnDrawImpression( pDC );
    }
     
    void CMyView::OnDrawImpression(CDC* pDC)
    {
    pDC->Rectangle (CRect (0, 0, 500, 500));
    }
    La taille du rectangle est bien fix�e, et pourtant il ne "s'imprime" pas pareil, d'une machine � l'autre...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 11
    Par d�faut sa peut t'aider ....
    voila je suis confronter au meme probleme que le tien , c'est en faite la definition de l'imprimante qu'il faut r�ussir a g�rer mais je suis d�butant et je n'ai pas r�ussi a automatiser la chose par contre j'ai un petit bout de code qu'il suffit de placer dans ondrawimpression qui permet de modifier certain parametre. A toi de tester, c'est assez empirique mais sa peu peu etre t'aider
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     cxPage = pDC->GetDeviceCaps ( HORZRES ) ;//va chercher la definition horizontal
      cyPage = pDC->GetDeviceCaps ( VERTRES ) ;;//va chercher la definition verticale
     
      // Permettre la mise à l'échelle de l'affichage (pour l'impression)
      pDC->SetMapMode(MM_ISOTROPIC); // échelle en x indépendante de y
     
      pDC->SetWindowExt(1000, 1000); // Définir la gandeur logique de l'affichage (pour l'impression)
     
      pDC->SetViewportExt(cxPage/valeur?? , cyPage/valeur?? );// Définir la grandeur physique de l'affichage (pour l'impression) en fonction d'une valeur
     
      pDC->SetViewportOrg(0,  0);// Définir le point d'origine de l'affichage (pour l'impression)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    29
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 29
    Par d�faut
    J'ai peut-�tre trouv� le truc...

    Il faut r�cup�rer le rectangle d'impression via le CPrintInfo et calculer un coefficient multiplicateur de redimensionnement en utilisant la m�thode HMetric... du pDC.

    Je valide demain...

Discussions similaires

  1. R�ponses: 10
    Dernier message: 22/09/2012, 15h11
  2. [MFC] Probl�me impression avec les MFC
    Par semenzato dans le forum MFC
    R�ponses: 2
    Dernier message: 25/01/2007, 16h13
  3. [MFC] Probl�me d'�chelle d'impression
    Par Philippe320 dans le forum MFC
    R�ponses: 4
    Dernier message: 04/02/2006, 08h59
  4. [MFC] probl�me d'�x�cution
    Par ben_iap dans le forum MFC
    R�ponses: 2
    Dernier message: 15/03/2004, 10h31
  5. Probl�me d'impression
    Par IngBen dans le forum C++Builder
    R�ponses: 7
    Dernier message: 22/05/2002, 11h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo