Je tente d'ajouter une fonctionnalité d'impression à mon application. J'affiche le CPrintDialog pour obtenir les options de l'imprimante. Comment puis-je activer l'option de plage d'impression? Actuellement, cette option est désactivée lorsque je faisModal() la boîte de dialogue.CPRintDialog n'autorise pas la sélection de la plage d'impression
Répondre
Quels arguments passez-vous au constructeur CPrintDialog? Le constructeur est déclaré comme
CPrintDialog(BOOL bPrintSetupOnly,
DWORD dwFlags = PD_ALLPAGES|PD_USEDEVMODECOPIES|PD_NOPAGENUMS|
PD_HIDEPRINTTOFILE|PD_NOSELECTION,
CWnd* pParentWnd = NULL);
donc si vous ne donnez pas de valeur pour l'argument « dwFlags », vous obtiendrez ces drapeaux par défaut. Les indicateurs par défaut incluent PD_NOPAGENUMS, de sorte que les contrôles de sélection de page seront désactivés. Vous devez également définir le nombre maximal de pages pour que les contrôles de sélection de page fonctionnent. Essayez de modifier votre code à quelque chose comme
CPrintDialog dlg(FALSE,
PD_ALLPAGES|PD_USEDEVMODECOPIES|PD_HIDEPRINTTOFILE|PD_NOSELECTION);
dlg.m_pd.nMaxPage = 100;
dlg.DoModal();
Votre code d'impression définit-il le nombre de pages à imprimer? Je n'ai pas de code à portée de main mais je pense que c'est dans OnPreparePrintDC() ou quelque chose comme ça, où vous définissez m_MaxPage ou un membre de l'objet que vous obtenez en tant qu'argument.
- 1. Rendre la sélection de plage programmatique visible pour l'utilisateur?
- 2. Dans Firefox, la modification d'une plage clonée à partir de la sélection efface la sélection la première fois
- 3. La table ne conserve pas la sélection
- 4. résultats de sélection avec plage + théorème de Pythagore
- 5. Existe-t-il un moyen de suivre la plage de sélection dans designMode d'iframe?
- 6. requêtes SQL pour retourner un article dans la plage ou la plage la plus proche
- 7. Trouver l'intersection de la plage de numéros
- 8. Défilement de la plage dans UITextView
- 9. Plage d'années en JavaScript pour une zone de sélection
- 10. sélectionner la requête par plage
- 11. Comment obtenir la plage de taille pour les polices
- 12. JTable pas de mise à jour lors de la sélection
- 13. DateTimePicker: Sélection d'une plage d'heures dans un seul jour
- 14. plage: appliquer la mise en forme à une sous-section dans la plage
- 15. Valider la boîte de sélection
- 16. VSTO "La valeur ne se situe pas dans la plage attendue."
- 17. Empêcher la sélection de texte après un double-clic
- 18. Comment obtenir la sélection HTML et le parent de sélection?
- 19. garder la sélection JTable dans viewport
- 20. Vim dupliquer la sélection
- 21. Annuler dans la sélection?
- 22. Comment conserver la sélection de la zone de texte WPF lorsqu'elle n'est pas focalisée?
- 23. jquery.autocomplete.js déclenchant la sélection et la déconnexion de la radio
- 24. Sélection de la liaison de données Silverlight?
- 25. colonnes de la table de sélection (jQuery)
- 26. GlacedLists Remplissage automatique La modification de la sélection ne fonctionne pas
- 27. LINQ, itérateurs, la sélection et la projection
- 28. Solution de contournement pour la plage TIMESTAMP limitée de MySQL?
- 29. Option pour la plage de pages lors de l'impression html
- 30. Validateur de plage ASP.net passer à la page suivante
Pas de chance. Avez-vous essayé cela sur un projet de test. Ne semble pas fonctionner même sur une version Release. Dites-moi si cela marche pour vous. Je suppose qu'il y a une façon particulière de gérer la sélection de la gamme, je me souviens d'avoir lu quelque part (je ne me souviens pas). Btw, mon projet n'est pas basé sur doc/view et est seulement une application basée sur un dialogue. Serait-ce la raison? apprécie beaucoup ton aide. –
Je n'ai pas vraiment testé, désolé à ce sujet. Maintenant que je l'ai, je peux voir que vous devez également définir le nombre maximal de pages pour les contrôles à activer: J'ai modifié ma réponse ci-dessus pour refléter cela, et cela fonctionne au moins pour moi. Le problème n'est pas lié au fait que vous n'utilisez pas DocView - le CPrintDialog lui-même n'est qu'un léger wrapper autour de la boîte de dialogue d'impression native de Windows. En fait, faire des impressions sans DocView peut être un peu plus compliqué, mais c'est un problème différent ... – DavidK