2009-06-23 11 views
5

J'ai développé mon propre Report Control qui n'est rien d'autre que du texte de dessin sur un CDC du DC client de la fenêtre de contrôle. J'ai la fonction d'impression pour travailler aussi. La sortie du rapport est envoyée directement à l'imprimante. Cependant, je veux que l'utilisateur connaisse la sortie avant que le rapport ne soit imprimé.Implémentation de mon propre aperçu avant impression?

Je ne peux pas faire cela en utilisant l'architecture d'aperçu avant impression de MFC car mon projet n'utilise pas l'architecture doc/view. Est-il possible pour moi de créer moi-même une fenêtre d'aperçu avant impression? Comment MFC gère-t-il cela? Y a-t-il un traitement spécial à faire ou à garder à l'esprit lorsque vous affichez la sortie de l'imprimante à l'écran? J'ai lu que MFC utilisait 2 contrôleurs de domaine à des fins d'aperçu avant impression. Est-ce que je dois faire ceci aussi si Im goin pour un aperçu d'impression fait sur commande?

Votre contribution est très appréciée! tia.

P.S. J'utilise Visual Studio 6 et il n'y a pas d'option pour changer cela en une version plus récente tout comme il n'y a aucun moyen pour moi d'ajouter le support doc/view.

Répondre

0

Aperçu avant impression n'est pas si spécial. Cela signifie simplement que vous devez rendre à l'écran (ou au bitmap) ce que vous auriez autrement rendu au DC de l'imprimante. Cela signifie principalement utiliser la taille de la page et fournir un contrôle d'interface utilisateur pour la page précédente/suivante.

0

J'avais tweeked ce code afin de le compiler comme lib statique. C'est pour les applications basées sur le dialogue.
Si vous n'avez pas besoin de fonctionnalités spéciales, cela fonctionnera bien pour vous.

J'ai dû creuser à travers les mécanismes MFC pour ajouter des fonctionnalités supplémentaires, mais à la fin, je l'ai laissé tomber. Si vous connaissez d'autres langages de programmation, essayez de trouver un contrôle d'aperçu avant impression dans cette langue, faites-en une DLL et utilisez-la depuis votre application MFC.

Par exemple, j'ai trouvé le contrôle NicePreview pour Delphi et cela a fonctionné, pour moi, magnifiquement!

0

Si vous avez réussi à imprimer votre sortie dans un fichier au format RTF et à l'afficher à l'écran, cela résoudrait-il le problème?

0

Il existe une classe CPreviewView dans MFC. Peut-être que vous pouvez trouver un moyen de l'instancier sans structure MDI. Sinon, vous pouvez simplement peindre sur l'écran tout ce que vous peignez sur le DC de l'imprimante. Rappelez-vous simplement que vous aurez probablement besoin de réduire l'échelle pour les dpi inférieurs.

Questions connexes