Imprimer la feuille de propriétés

La feuille de propriétés Print 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. À un sous-ensemble de pages de propriétés Windows standard, 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.

feuille de propriétés de l’imprimante

La plupart des membres de la structure PRINTDLGEX sont identiques à ceux de la structure PRINTDLG . Pour obtenir une description de l’utilisation des membres de structure communs 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 des propriétés d’impression.

Vous pouvez implémenter un objet de rappel pour recevoir des notifications et des messages de la fonction PrintDlgEx pendant que la feuille de propriétés s’affiche. 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 non incohérentes à imprimer. Le membre lpPageRanges de la structure PRINTDLGEX spécifie un tableau de structures PRINTPAGERANGE dans lequel chaque structure spécifie une plage de pages.

La feuille de propriétés Imprimer affiche une case d’option Page active dans le groupe Plage de pages de 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 traite des rubriques suivantes.

Personnalisation de la feuille de propriétés d’impression

Vous pouvez personnaliser la feuille de propriétés Imprimer des manières suivantes :

  • 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 propres à 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 avoir 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 application ou une bibliothèque de liens dynamiques, 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 descripteurs pour les pages supplémentaires.

    Procédures de boîte de dialogue spécifiées lors de la création de chaque processus de page messages envoyés aux pages.

  3. Vous souhaiterez peut-être 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.

Objet de rappel pour la feuille de propriétés d’impression

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 que la feuille de propriétés est affichée. 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 autre imprimante dans la liste des imprimantes installées affichée par la feuille de propriétés
  • Quand 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 vers 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 .