Imprimer la feuille de propriétés

La feuille de propriétés Imprimer est une interface utilisateur standard qui permet à l’utilisateur de spécifier les propriétés d’un travail d’impression particulier. La feuille de propriétés est composée d’un ensemble de pages de propriétés qui varient selon l’imprimante ou l’application. Dans un sous-ensemble de pages de propriétés standard Windows, certaines imprimantes peuvent ajouter des pages de propriétés spécifiques au pilote et certaines applications peuvent ajouter des pages de propriétés spécifiques à l’application.

Pour créer et afficher une feuille de propriétés Print , initialisez une structure PRINTDLGEX et transmettez la structure à la fonction PrintDlgEx .

L’illustration suivante montre une feuille de propriétés Print standard.

printer property sheet

La plupart des membres de la structure PRINTDLGEX sont identiques à ceux de la structure PRINTDLG . Pour obtenir des descriptions de l’utilisation des membres de structure courants pour interagir avec les contrôles de boîte de dialogue, consultez Boîte de dialogue Imprimer. Le reste de cette rubrique décrit les fonctionnalités de la feuille de propriétés Imprimer qui diffèrent de la boîte de dialogue Imprimer .

Vous pouvez personnaliser une feuille de propriétés Imprimer en spécifiant un modèle de boîte de dialogue personnalisé pour la partie inférieure de la page Général et en spécifiant des pages de propriétés supplémentaires pour suivre la page Général . Pour plus d’informations, consultez Personnalisation de la feuille de propriétés Imprimer.

Vous pouvez implémenter un objet de rappel pour recevoir des notifications et des messages de la fonction PrintDlgEx pendant l’affichage de la feuille de propriétés. Les applications qui fournissent des modèles personnalisés ou des pages supplémentaires utilisent l’objet de rappel pour communiquer avec la feuille de propriétés. Pour plus d’informations, consultez Callback Object for the Print Property Sheet.

La feuille de propriétés Print prend en charge la spécification de plusieurs plages de pages noncontigues à imprimer. Le membre lpPageRanges de la structure PRINTDLGEX spécifie un tableau de structures PRINTPAGERANGE dans lesquelles chaque structure spécifie une plage de pages.

La feuille de propriétés Imprimer affiche une case d’option Page active dans le cadre du groupe de plages de pages des cases d’option. Pour contrôler la case d’option Page active , utilisez les indicateurs PD_CURRENTPAGE et PD_NOCURRENTPAGE dans le membre Indicateurs de la structure PRINTDLGEX .

Cette section décrit les rubriques suivantes.

Personnalisation de la feuille de propriétés Imprimer

Vous pouvez personnaliser la feuille de propriétés Imprimer de la manière suivante :

  • Fournissez un modèle personnalisé pour la partie inférieure de la page Général . Cela vous permet d’inclure des contrôles supplémentaires uniques à votre application. La fonction PrintDlgEx utilise votre modèle personnalisé à la place du modèle par défaut.
  • Fournissez des pages de propriétés supplémentaires pour suivre la page Général .
  • Fournissez un objet de rappel. Pour plus d’informations, consultez Callback Object for the Print Property Sheet.

Vous ne pouvez pas modifier la partie supérieure de la page Général . Vous ne pouvez pas modifier les pages de propriétés fournies par le pilote d’imprimante.

Pour fournir un modèle personnalisé pour la page Général :

  1. Créez un modèle personnalisé pour la partie inférieure de la page Général en modifiant le modèle PRINTDLGEXORD spécifié dans le fichier Prnsetup.dlg. En règle générale, le modèle personnalisé doit être de la même taille que le modèle par défaut. Toutefois, vous pouvez agrandir le modèle personnalisé si vous spécifiez l’indicateur PD_USELARGETEMPLATE pour créer une page Général plus grande. Les identificateurs de contrôle utilisés dans le modèle de boîte de dialogue Imprimer par défaut sont définis dans le fichier Dlgs.h.

  2. Utilisez la structure PRINTDLGEX pour activer le modèle comme suit :

    • Si votre modèle personnalisé est une ressource dans une bibliothèque de liens dynamiques ou d’application, définissez l’indicateur PD_ENABLEPRINTTEMPLATE dans le membre Indicateurs. Utilisez les membres hInstance et lpPrintTemplateName de la structure pour identifier le module et le nom de la ressource.

      -Ou-

    • Si votre modèle personnalisé est déjà en mémoire, définissez l’indicateur PD_ENABLEPRINTTEMPLATEHANDLE . Utilisez le membre hInstance pour identifier l’objet mémoire qui contient le modèle.

  3. Si vous utilisez un modèle personnalisé pour définir des contrôles supplémentaires, vous devez fournir un objet de rappel pour traiter les entrées de vos contrôles. L’objet de rappel implémente une méthode IPrintDialogCallback::HandleMessage qui reçoit les messages envoyés à la boîte de dialogue personnalisée.

Pour fournir des pages de propriétés supplémentaires

  1. Utilisez la fonction pour créer les pages supplémentaires.

  2. Utilisez le membre lphPropertyPages de la structure PRINTDLGEX pour spécifier un tableau de handles aux pages supplémentaires.

    Les procédures de boîte de dialogue spécifiées lors de la création de chaque page traitent les messages envoyés aux pages.

  3. Vous pouvez fournir un objet de rappel qui implémente l’interface. La fonction PrintDlgEx utilise cette interface pour passer à l’application un pointeur vers une interface IPrintDialogServices . Les procédures de boîte de dialogue pour les pages de propriétés supplémentaires peuvent utiliser cette interface pour récupérer des informations sur l’imprimante actuellement sélectionnée.

Callback, objet pour la feuille de propriétés Imprimer

Une application qui affiche une feuille de propriétés Print peut implémenter un objet de rappel pour recevoir des notifications et des messages de la fonction PrintDlgEx pendant l’affichage de la feuille de propriétés. Pour fournir un objet de rappel, spécifiez un pointeur vers l’objet dans le membre lpCallback de la structure PRINTDLGEX .

L’objet de rappel doit implémenter l’interface IPrintDialogCallback . La fonction PrintDlgEx appelle les méthodes IPrintDialogCallback dans les situations suivantes :

  • Lorsque la boîte de dialogue a été initialisée
  • Lorsque l’utilisateur sélectionne une imprimante différente dans la liste des imprimantes installées affichées par la feuille de propriétés
  • Lorsqu’il reçoit des messages pour la boîte de dialogue enfant dans la partie inférieure de la page Général de la feuille de propriétés

L’objet de rappel doit également implémenter l’interface IObjectWithSite . La fonction PrintDlgEx appelle la méthode pour passer un pointeur à une interface IPrintDialogServices à une application. Les méthodes IPrintDialogCallback peuvent utiliser l’interface IPrintDialogServices pour récupérer des informations sur l’imprimante actuellement sélectionnée. L’interface IPrintDialogServices est également utile pour les applications qui créent des pages supplémentaires pour suivre la page Général de la feuille de propriétés Print . Les procédures de boîte de dialogue pour les pages supplémentaires peuvent appeler des méthodes IPrintDialogServices .