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 :

Impression de text dans une CScrollView


Sujet :

MFC

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2006
    Messages : 166
    Points : 62
    Points
    62
    Par défaut Impression de text dans une CScrollView
    Bonjour,

    Voilà je cherche a imprimer le contenu d'une CScrollView
    qui contient donc que du text (écrit par CDC->TextOut())

    j'appelle par défaut CScrollView::OnFilePrint mais ca marche pas... meme l'apercu avant impression.

    si quelqu'un a la solution... merci

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    la première condition c'est que ton code d'écriture soit placé dans la méthode OnDraw , c'est le cas ?
    http://cpp.developpez.com/faq/vc/ind...HowToPrintView

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2006
    Messages : 166
    Points : 62
    Points
    62
    Par défaut
    ouais c'est le cas

    tout a l'air d'etre correct mais quand e cherche a imprimer... ca plante

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    ça c'est un autre sujet...
    si tu veux de l'aide il faut des détails sur le plantage ,on n'a pas de boule de cristal

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2006
    Messages : 166
    Points : 62
    Points
    62
    Par défaut
    ca c'est sur...

    en gros voilà le code...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    BEGIN_MESSAGE_MAP(CMyViewText, CScrollView)
    	//{{AFX_MSG_MAP(CMyViewText)
    	//}}AFX_MSG_MAP
    	// Standard printing commands
    	ON_COMMAND(ID_FILE_PRINT, CScrollView::OnFilePrint)
    	ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView::OnFilePrint)
    	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollView::OnFilePrintPreview)
    	ON_MESSAGE(WM_COMMANDHELP, OnCommandHelp)
    	ON_MESSAGE(WM_HELPHITTEST,OnHelpHitTest)
    END_MESSAGE_MAP()
    donc dans mon OnDraw(CDC* pDC)
    j'ai tout mes pDC->TextOut

    et puis il y a ça...

    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
     
     
    BOOL CMyViewText::OnPreparePrinting(CPrintInfo* pInfo) 
    {
    	// TODO: call DoPreparePrinting to invoke the Print dialog box
    	pInfo->SetMaxPage(1);
    	return CScrollView::OnPreparePrinting(pInfo);
    }
     
    void CMyViewText::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo) 
    {
    	// TODO: Add your specialized code here and/or call the base class
     
    	CScrollView::OnBeginPrinting(pDC, pInfo);
    }
     
    void CMyViewText::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo) 
    {
    	// TODO: Add your specialized code here and/or call the base class
     
    	CScrollView::OnEndPrinting(pDC, pInfo);
    }
    c'est tout

    ah non dans le .h j'ai :

    afx_msg void OnFilePrint();
    afx_msg void OnFilePrintPreview();

    de déclaré...
    ce programme à été fait sous VC6.0 et porté sous VC2005 depuis

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2006
    Messages : 166
    Points : 62
    Points
    62
    Par défaut
    personne pour voir le problème ? :-(

  7. #7
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    le probléme n'est pas dans le code que tu présentes ,mais certainement dans le Ondraw .
    on a déjà cité plusieurs fois la méthode pour déterminer ce qui plante:
    en debug sur l'assertion il faut remonter la pile d'appels de code jusqu'à une ligne ton code .
    sans connaitre l'assertion d'erreur et le code responsable on ne peut répondre.

  8. #8
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2006
    Messages : 166
    Points : 62
    Points
    62
    Par défaut
    bah je fais pas grand chose...
    en gros si j'ai
    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
     
    void CMyViewText::OnDraw(CDC* pDC)
    {
    	TEXTMETRIC	tm;
    	CFont		font;
     
    	font.CreateFont(-160, 80, 0, 0, 400, FALSE, FALSE, 0, ANSI_CHARSET, 
    		OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
    		DEFAULT_PITCH | FF_SWISS, "Arial");
     
    	CFont *pOldFont = pDC->SelectObject(&font);
    	pDC->GetTextMetrics(&tm);
    	nHeight = tm.tmHeight + tm.tmExternalLeading;
     
    // la j'ai tout mis en commentaire.. mais c'est que des TextOut()
     
    	pDC->SelectObject(pOldFont);
    }
    j'ai un Debug Assertion Failed des que je clic sur "aperçu avant impression"

    j'ai surement une erreur dans ce qui reste... mais la je bloque

  9. #9
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2006
    Messages : 166
    Points : 62
    Points
    62
    Par défaut
    Bon en fait en mettant Rien du tout dans le OnDraw ca plante aussi...

  10. #10
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    je t'ai donné la méthode pour voir ce qui cause le plantage...

  11. #11
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2006
    Messages : 166
    Points : 62
    Points
    62
    Par défaut
    ouais... oky j'ai fouillé le forum pour comprendre ce que tu voulais dire ...
    mais je ne vois pas où m'arrête pour vérifier ça...

    surtout que la fenêtre est bien créé avec des textes dedans donc je ne vois pas qu'est ce qui ne serait pas initialisé pour faire l'erreur.

Discussions similaires

  1. [WD12] centrer texte dans une impression directe
    Par tahraz dans le forum WinDev
    Réponses: 3
    Dernier message: 14/06/2013, 13h30
  2. Ajouter du texte dans une edit box
    Par raf_gug dans le forum MFC
    Réponses: 10
    Dernier message: 23/05/2013, 10h00
  3. Icône a coté du texte dans une ListBox
    Par joce3000 dans le forum C++Builder
    Réponses: 6
    Dernier message: 05/12/2003, 02h25
  4. comment ecrire du texte dans une window application
    Par gaut dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 16/07/2003, 10h23
  5. Réponses: 2
    Dernier message: 10/06/2002, 11h03

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