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 :

Afficher une feuille dans un CDialog


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Par défaut Afficher une feuille dans un CDialog
    Bonjour,
    j'aimerais afficher une feuille (qui est sensée être imprimée) sur une CDialog. Mais je ne sais pas comment procéder.
    Pour m'expliquer davantage, il s'agit d'un contrat rempli dans un CDialog et j'aimerais que quand l'utilisateur confirme l'enregistrement, une CDialog contenant le contrat sous forme d'une feuille (sa partie supérieur avec des scrollbars) s'affiche avec un bouton imprimer pour pouvoir imprimer la feuille.
    Si vous avez des idée je suis preneur. Merci.

  2. #2
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Si ton contrat contient essentiellement du texte tu peux aller regarder du côté du CRichEdit pour l'affichage à l'écran.

    Concernant l'impression c'est un peu pareil que lorsque tu surcharges une méthode d'affichage d'un composent héritant de CWnd. Sauf que cette fois tu devras manipuler le DC de l'imprimante au lieu de celui de écran (un exemple de la FAQ).

    Si tu as des questions un peu plus précises n'hésite pas

  3. #3
    Membre très actif Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Par défaut
    Je te remerci pour la réponse.
    J'avais déjà commencé la solution avec le RichEdit mais je crein tomber dans des impasses vu que le rtf est un peu limité dans le traitement du texte.

  4. #4
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Ça dépend quelle version du RTF gère ton CRichEdit.

    Sinon tu peux directement dessiner dans ta CDialog (ou dans une de ses fenêtre-fille) et là tu es complètement libre, mais ça ne sera sûrement fastidieux et pas très maintenable.

  5. #5
    Membre très actif Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Par défaut
    Je ne connais que deux versions du RichEdit 1 et 2.0, j'ai utilisé le controle 2.0 et je l'ai initialisé par la fonction ::AfxInitRichEdit2() mais je n'arrive pas a charger un doc rtf contenant du tableau ! par contre un simple rtf (du simple texte) se charge normalement.

  6. #6
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Je te le redis tout dépend dans quelle version de RTF est formaté ton document.
    Perso j'utilise un CRichEdit 4.1 (après je ne sais pas si les tableaux sont supportés, et je dois t'avouer que je n'ai pas cherché à le savoir ).
    Pour charger cette version du CRichEdit il va te falloir surcharger la classe CRichEdit et effectuer les modifications suivantes :

    Dans le .h tu déclares la variables suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HINSTANCE m_hInstRichEdit50W;      // handle to MSFTEDIT.DLL
    (tu pourras ainsi utiliser une DLL plus récente que celle que le système va charger pour toi)

    Ensuite tu surcharges la méthode Create :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    BOOL CRichEditPerso::Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID)
    {
        m_hInstRichEdit50W = LoadLibrary(_T("msftedit.dll"));
        if (!m_hInstRichEdit50W)
        {
            AfxMessageBox(_T("MSFTEDIT.DLL (CRichEdit4.1) Didn't Load"));
            return FALSE;
        }
     
        CWnd* pWnd = this;
        return pWnd->Create(_T("RICHEDIT50W"), NULL, dwStyle, rect, pParentWnd, nID);
    }
    (permets le chargement de la DLL contenant le CRichEdit 4.1)

    Pour finir ne pas oublier de libérer la DLL dans le destructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        //Free the MSFTEDIT.DLL library
        if(m_hInstRichEdit50W)
            FreeLibrary(m_hInstRichEdit50W);
    Après je ne t'assures pas que ça va résoudre ton problème, mais ça coûte pas très cher de tester.
    Au passage tu peux aussi poster ton fichier d'exemple, afin que je le teste chez moi, pour s'assurer que ça ne vient pas de ta façon de la charger dans le CRichEdit.

    Bon courage

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher une feuille excel dans un OLE
    Par mickdu29 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 23/02/2011, 01h03
  2. Afficher une feuille Excel dans une page .aspx
    Par AJemni dans le forum ASP.NET
    Réponses: 5
    Dernier message: 19/10/2009, 11h28
  3. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  4. Réponses: 3
    Dernier message: 28/01/2004, 14h55

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