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] imprimer une view


Sujet :

MFC

  1. #1
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut [MFC] imprimer une view
    bonjour,

    je vais peut être commencer un projet, mais avant de choisir les MFC ou autre chose j'aimerais savoir ceci.

    admettons que je fasse une view style excel (barre de menu + une page avec des cases). est-il possible d'imprimer, comme dans excel, uniquement les cases (et ce qu'elles contiennent), sachant que les cases ne sont pas forcément toutes affichées à l'écran (ascenseur)?

    j'ai bien vu dans la FAQ qu'on peut faire une impression à partir d'une copie d'écran bitmap, mais ça ne permet d 'imprimer que ce qui est visible à l'écran.

    et en bonus, est-ce que c'est possible d'avoir un aperçu avant impression? (là j'en demande peut-être beaucoup)

    merci pour vos réponses

    (si mes explications ne sont pas très nettes, c'est qu'il est 6 du mat' et que je ne sais pas encore exactement à quoi va ressembler l'application que je veux faire, c'est à l'étude)

  2. #2
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    ou alors ya tout bonnement une bouton imprimer par défaut dans la barre de menu et je m'embêtes pour rien? (j'ai encore rien essayé, donc excusez le manque d'information)

    pour l'instant je ne connais que le dialog based

    merci

  3. #3
    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 bigboom (ça faisait longtemps ) ,

    Bon voila le principe général d'une édition à partir d'une CView CScrollView :
    Le traitement normal d'affichage se fait dans la fonction virtuelle OnDraw
    qui reçoit un objet CDC (contexte de périphérique) .

    Si on imprime la fonction OnDraw est appelée par une autre fonction virtuelle : OnPrint le dc sera alors un contexte de périphérique pour imprimante, et CDC::IsPrinting() renvoie TRUE .

    Dans le cas de la prévisualisation écran on aura un objet CPreviewDC et OnPrint et OnDraw seront appelées.

    Les fonctions disponibles pour le système d'édition sont:
    OnPreparePrinting : définition de la plage d'édition voir CPrintInfo
    OnBeginPrinting : créations d'objets gdi perso.
    OnPrepareDC : appelée pour chaque page, c'est l'emplacement convenu pour définir le système de coordonnées (autre que MM_TEXT) .
    OnPrint : Appelée pour chaque page ,traitements spécifiques pour compléter éventuellement le dessin, en têtes pieds de page, date heure d’édition.
    Appelle OnDraw.

    OnEndPrinting: suppression des objets GDI .

    dans une view on trouve generalement les messages suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
    	ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
    	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
    correspondant aux differents appels pour l'edition de la fenetre en cours.


    Note : le système MFC associe l’édition/prévisualisation à la fenêtre en cours on ne dispose pas d’un objet indépendant pour gérer l’édition comme ça existait chez Borland avec les OWL . ( Lacune que je me suis empressé de combler ).


    voila pour un apercu rapide du sujet.

  4. #4
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    salut Farscape !

    et ouais depuis la fin de mon stage je n'ai pas touché à Visual C++ (et là j'apprend le Java).

    ouloulou, pour l'instant c'est un peu obscure cette histoire d'impression. mais je pense que dès que j'aurais commencé je comprendrais mieux. en tout cas un grand merci pour ta réponse. tout ce que je veux faire est possible, donc c'est cool.

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    bonsoir ,
    ça fonctionne ?

  6. #6
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    bonsoir,

    héhéhé, minute. je n'ai commencé qu'aujourd'hui mon appli
    le problème de l'impression viendra à la fin (mais il fallait que je m'assure dès le début que c'était possible, parce que c'est la finalité de l'appli de pouvoir imprimer les résultats).

    mais je rendrais compte de mes progrès au fur et à mesure (car je suis sur que je buterais de temps en temps sur quelquechose)

    à bientôt

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

Discussions similaires

  1. [VB.NET]Comment Imprimer une form
    Par bernard06 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/10/2011, 17h43
  2. [C++/MFC]Taille d'une View
    Par cjacquel dans le forum MFC
    Réponses: 1
    Dernier message: 28/05/2006, 19h49
  3. [MFC] imprimer une dialogue contenant un graphique
    Par moulefrite dans le forum MFC
    Réponses: 9
    Dernier message: 27/04/2006, 11h49
  4. [MFC] Maximiser l'impression d'une view sur feuille A4
    Par bigboomshakala dans le forum MFC
    Réponses: 10
    Dernier message: 24/11/2004, 15h58
  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