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] Probleme avec nouveau document et imprimer.


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Par d�faut [MFC] Probleme avec nouveau document et imprimer.
    Bonjour, je d�bute avec visual c++ et je me suis inspirer de ceci :http://farscape.developpez.com/tutor...arrer-mfc-vc6/
    pour faire un petit programme. Mais je bloque car je ne sais pas comment configurer quand on fait fichier->nouveau ou quand on clique sur l'icone nouveau pour que tous les cedit soit effacer (aussi bien dans la fenetre principale que dans les boites de dialogue).
    J'ai un autre probleme, je ne sais pas comment faire pour imprimer une des boite de dialogue reli� avec la fenetre principale (SDI) par un bouton.
    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
    Par d�faut Re: [MFC] Probleme avec nouveau document et imprimer.
    salut,
    on reprend dans l'ordre.
    Citation Envoy� par Link_23
    Mais je bloque car je ne sais pas comment configurer quand on fait fichier->nouveau ou quand on clique sur l'icone nouveau pour que tous les cedit soit effacer
    la commande fichier nouveau invoque la fonction du document:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    BOOL CSampleSDIDoc::OnNewDocument()
    {
    	if (!CDocument::OnNewDocument())
    		return FALSE;
     
    	// TODO: add reinitialization code here
    	// (SDI documents will reuse this document)
     
    	return TRUE;
    }
    pour reinitialiser la view:
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    BOOL CSampleSDIDoc::OnNewDocument()
    {
    	if (!CDocument::OnNewDocument())
    		return FALSE;
     
    	// TODO: add reinitialization code here
    	// (SDI documents will reuse this document)
     
        POSITION pos = GetFirstViewPosition();   
        CSampleSDIView* pView = static_cast<CSampleSDIView *>(GetNextView(pos));
     
        pView->RazEdit();
    	return TRUE;
    }
    // dans la view:
    //-------------------------------------------------------
    void CSampleSDIView::RazEdit()
    {
        CString *parString[]={
                          &m_StrNom,
                          &m_strPrenom,
                          &m_strAdresse2,
                          &m_strAdresse,
                          &m_strVille,
                          &m_strCdp
                            };
     
        for(int i=0;i<sizeof(parString)/sizeof(CString *);i++)            
            parString[i]->Empty();
        UpdateData(FALSE); // mise a jour des controles.
    }
    //-------------------------------------------------------
    void CSampleSDIView::OnButtonraz() 
    {
    	// TODO: Add your control notification handler code here
           RazEdit();
    }
    a noter que OnInitialUpdate est rappell�e � chaque fois..
    pour les boites de dialogues je ne vois pas ton probleme.
    il suffit de fixer la valeur souhait�e et de faire UpdateData(FALSE).
    Citation Envoy� par Link_23
    je ne sais pas comment faire pour imprimer une des boite de dialogue reli� avec la fenetre principale (SDI) par un bouton.
    pour imprimer une boite de dialogue voir faq:
    http://c.developpez.com/faq/vc/?page...PrintDialgoBox

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Par d�faut
    Merci pour ton aide, je vais essayer d'y faire maintenant.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Par d�faut
    Ce week end j'ai pas trop eu le temps de tester, donc je l'ai fais ce matin.

    Donc pour ce qui est de fichier->nouveau sa marche tout bien.

    Mais de ce qui est d'imprimer la boite de dialogue j'ai pas trop compris comment il fallait faire.
    1�) Les lignes de codes qu'il y a dans la librairie msdn ( http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_5a5h.asp ) je ne sais pas vraiment ou les mettre dans le programmes.
    2�) dans ce lien l� : http://c.developpez.com/faq/vc/?page...PrintDialgoBox
    Le premier rectangle de code je ne sais pas ou le placer non plus et le deuxi�me (dites moi si c bon) je l'ai mis dans CSampleView.cpp en d�clarant :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    CBitmap *CopyScreenToBitmap(LPRECT lpRect);
    CBitmap *CopyWindowToBitmap(CWnd* pWnd ,bool bWindowClient);
    void PrintBmp(CBitmap *pBmp);
    dans CSampleView.h
    et j'ai mis
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    CBitmap *pBmp=CopyWindowToBitmap(this,true);
    PrintBmp(pBmp);    
    pBmp->DeleteObject();
    delete pBmp;
    dans Cdialog.cpp dans void Cdialog::OnPrint() qui correspond au bouton que j'ai rajouter dans la boite de dialogue qui permettra d'imprimer la boite de dialogue.
    en rajoutant aussi dans Cdialog.cpp
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    #include "Salon de ToilettageDoc.h"
    #include "Salon de ToilettageView.h"

  5. #5
    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
    Par d�faut
    bonsoir,
    les fonctions de la faq:
    CopyScreenToBitmap
    CopyWindowToBitmap
    PrintBmp
    peuvent etre definies comme fonctions membres dans ta boite de dialogue, ou dans une boite de dialogue qui servirait de classe de base � toutes tes dialogues.
    dans ta fonction onPrint il suffira de placer le code suivant de la faq:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Cdialog::OnPrint()
    {
        // contexte d'utilisation : dans une boite de dialogue ou view etc..
       CBitmap *pBmp=CopyWindowToBitmap(this,true);
       PrintBmp(pBmp);    
       pBmp->DeleteObject();
       delete pBmp;
    }

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Par d�faut
    J'ai essay� de faire ce que tu as dit, mais j'ai des erreurs que je n'arrive pas a r�soudre, les voici :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CFactures.cpp(213) : error C2065: 'CPictureHolder' : undeclared identifier
     
    CFactures.cpp(213) : error C2146: syntax error : missing ';' before identifier 'picture'
     
    CFactures.cpp(213) : error C2065: 'picture' : undeclared identifier
     
    CFactures.cpp(214) : error C2228: left 
    of '.CreateFromBitmap' must have class/struct/union type
     
    CFactures.cpp(227) : error C2228: left of '.Render' must have class/struct/union type

  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
    Par d�faut
    Citation Envoy� par Link_23
    J'ai essay� de faire ce que tu as dit, mais j'ai des erreurs que je n'arrive pas a r�soudre, les voici :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CFactures.cpp(213) : error C2065: 'CPictureHolder' : undeclared identifier
     
    CFactures.cpp(213) : error C2146: syntax error : missing ';' before identifier 'picture'
     
    CFactures.cpp(213) : error C2065: 'picture' : undeclared identifier
     
    CFactures.cpp(214) : error C2228: left 
    of '.CreateFromBitmap' must have class/struct/union type
     
    CFactures.cpp(227) : error C2228: left of '.Render' must have class/struct/union type
    salut ,si tu regardes le post de la faq tu verras qu'il faut inclure #include <afxctl.h>
    met le de pr�f�rence dans stdafx.h.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Par d�faut
    justement je l'ai fait, j'ai essayer d'y mettre dans stdafx.h comme tu viens de dire mais c'est pareil
    et je voudrai savoir si il faut mettre ceci :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    VERIFY (bm.Attach (::LoadImage (::AfxFindResourceHandle(
     MAKEINTRESOURCE (inBitmapID), RT_BITMAP),
     MAKEINTRESOURCE (inBitmapID), IMAGE_BITMAP, 0, 0,
     (LR_DEFAULTSIZE | LR_CREATEDIBSECTION))))
    si oui ou le mettre

  9. #9
    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
    Par d�faut
    Citation Envoy� par Link_23
    justement je l'ai fait, j'ai essayer d'y mettre dans stdafx.h comme tu viens de dire mais c'est pareil
    et je voudrai savoir si il faut mettre ceci :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    VERIFY (bm.Attach (::LoadImage (::AfxFindResourceHandle(
     MAKEINTRESOURCE (inBitmapID), RT_BITMAP),
     MAKEINTRESOURCE (inBitmapID), IMAGE_BITMAP, 0, 0,
     (LR_DEFAULTSIZE | LR_CREATEDIBSECTION))))
    si oui ou le mettre
    tu as mis #include <afxctl.h> dans stdafx.h et fait clean + rebuild all et tu as toujours le pb ?
    c'est quoi la version de ton visual ?

    pour la deuxieme partie non relis le post de la faq ,c'etait pour expliquer la lecture d'un bitmap DIB...

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Par d�faut
    J'ai visual C++ version 6.0

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Par d�faut
    D�sol� j'avais pas mis clean, jamais juste fais rebuild all, maintenant y'a plus d'erreur. merci
    en faite a quoi sa sert clean

  12. #12
    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
    Par d�faut
    clean supprime les fichiers interm�diaires .pch .ncb + .obj etc..
    des fois en cas de changement majeur il est pr�f�rable de faire un clean avant rebuild all ....

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Par d�faut
    M�me joueur joue encore lol.
    Comment on enl�ve le mode paysage.

  14. #14
    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
    Par d�faut
    re,
    comment les lignes:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
     DEVMODE FAR *pDevMode=(DEVMODE FAR *)::GlobalLock(printDlg.GetDevMode());
     
        // set orientation to landscape
        pDevMode->dmOrientation=DMORIENT_LANDSCAPE;
        ::GlobalUnlock(printDlg.GetDevMode());
    du coup il faudra certainement reregler les coefs d'ajustements:
    voir:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
     // rectangle d'impression      
            int ncoefy=(rectDraw.Height()/bmpInfo.bmHeight);
     
            // centrer l'image sur la feuille
            int nX = rectDraw.left + (rectDraw.Width() - (bmpInfo.bmWidth*ncoefy)) / 2;
            int nY = rectDraw.top + (rectDraw.Height() - (bmpInfo.bmHeight*ncoefy)) / 2;

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Par d�faut
    Merci bien sa marche, maintenant me reste plus qu'a trouv� les bons coefficients.

  16. #16
    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
    Par d�faut
    Citation Envoy� par Link_23
    Merci bien sa marche, maintenant me reste plus qu'a trouv� les bons coefficients.
    il suffit de faire la meme chose mais sur la largeur (axe des x) ...


  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Par d�faut
    Merci pour l'aide probl�me r�solu

  18. #18
    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
    Par d�faut
    salut,alors pense a mettre r�solu avec le bouton en bas a gauche

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Par d�faut
    ok je savais pas comment on faisait.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [MFC] Probleme avec des Dll en MFC
    Par jiraya43 dans le forum MFC
    R�ponses: 7
    Dernier message: 03/05/2006, 08h54
  2. [MFC] Probleme avec CDialog
    Par le-makinero dans le forum MFC
    R�ponses: 2
    Dernier message: 19/04/2006, 10h15
  3. [MFC] probleme avec le ClassWizard
    Par moulefrite dans le forum MFC
    R�ponses: 3
    Dernier message: 31/03/2006, 15h54
  4. [MFC]Probleme avec attributs d'une LOGFONT
    Par Fildz dans le forum MFC
    R�ponses: 3
    Dernier message: 08/01/2006, 17h59
  5. [MFC] probleme avec CFile
    Par benahpets dans le forum MFC
    R�ponses: 12
    Dernier message: 18/08/2005, 10h29

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