Eigenschaftenblatt drucken
Das Print-Eigenschaftenblatt ist eine Standardbenutzeroberfläche, mit der der Benutzer die Eigenschaften eines bestimmten Druckauftrags angeben kann. Das Eigenschaftenblatt besteht aus einer Reihe von Eigenschaftenseiten, die je nach Drucker oder Anwendung variieren. Zu einer Teilmenge der Standardmäßigen Windows-Eigenschaftenseiten fügen einige Drucker möglicherweise treiberspezifische Eigenschaftenseiten hinzu, und einige Anwendungen fügen anwendungsspezifische Eigenschaftenseiten hinzu.
Um ein Print-Eigenschaftenblatt zu erstellen und anzuzeigen, initialisieren Sie eine PRINTDLGEX-Struktur , und übergeben Sie die Struktur an die PrintDlgEx-Funktion .
Die folgende Abbildung zeigt ein typisches Print-Eigenschaftenblatt .
Die meisten Member der PRINTDLGEX-Struktur sind mit denen der PRINTDLG-Struktur identisch. Beschreibungen zur Verwendung der allgemeinen Strukturelemente für die Interaktion mit den Dialogfeldsteuerelementen finden Sie unter Dialogfeld drucken. Im weiteren Verlauf dieses Themas werden die Eigenschaften von Eigenschaftenblatt drucken beschrieben , die sich vom Dialogfeld Drucken unterscheiden.
Sie können ein Eigenschaftenblatt drucken anpassen, indem Sie eine benutzerdefinierte Dialogfeldvorlage für den unteren Teil der Seite Allgemein angeben und zusätzliche Eigenschaftenseiten angeben, die der Seite Allgemein folgen sollen. Weitere Informationen finden Sie unter Anpassen des Druckeigenschaftenblatts.
Sie können ein Rückrufobjekt implementieren, um Benachrichtigungen und Nachrichten von der PrintDlgEx-Funktion zu empfangen, während das Eigenschaftenblatt angezeigt wird. Anwendungen, die benutzerdefinierte Vorlagen oder zusätzliche Seiten bereitstellen, verwenden das Rückrufobjekt für die Kommunikation mit dem Eigenschaftenblatt. Weitere Informationen finden Sie unter Rückrufobjekt für das Print-Eigenschaftenblatt.
Das Print-Eigenschaftenblatt bietet Unterstützung für die Angabe mehrerer, nicht zusammenhängender Seitenbereiche, die gedruckt werden sollen. Der lpPageRanges-Member der PRINTDLGEX-Struktur gibt ein Array von PRINTPAGERANGE-Strukturen an, in denen jede Struktur einen Seitenbereich angibt.
Im Eigenschaftenblatt Drucken wird das Optionsfeld Aktuelle Seite als Teil der Optionsfeldgruppe Seitenbereich angezeigt. Um das Optionsfeld Aktuelle Seite zu steuern, verwenden Sie die flags PD_CURRENTPAGE und PD_NOCURRENTPAGE im Flags-Member der PRINTDLGEX-Struktur .
In diesem Abschnitt werden die folgenden Themen erläutert.
Anpassen des Druckeigenschaftenblatts
Sie können das Eigenschaftenblatt Drucken auf folgende Weise anpassen:
- Stellen Sie eine benutzerdefinierte Vorlage für den unteren Teil der Seite Allgemein bereit . Dadurch können Sie zusätzliche Steuerelemente einschließen, die für Ihre Anwendung eindeutig sind. Die PrintDlgEx-Funktion verwendet Ihre benutzerdefinierte Vorlage anstelle der Standardvorlage.
- Stellen Sie zusätzliche Eigenschaftenseiten bereit, um der Seite Allgemein zu folgen.
- Geben Sie ein Rückrufobjekt an. Weitere Informationen finden Sie unter Rückrufobjekt für das Print-Eigenschaftenblatt.
Sie können den oberen Teil der Seite Allgemein nicht ändern. Vom Druckertreiber bereitgestellte Eigenschaftenseiten können nicht geändert werden.
So stellen Sie eine benutzerdefinierte Vorlage für die Seite Allgemein bereit:
Erstellen Sie eine benutzerdefinierte Vorlage für den unteren Teil der Seite Allgemein , indem Sie die in der Datei Prnsetup.dlg angegebene PRINTDLGEXORD-Vorlage ändern. In der Regel muss die benutzerdefinierte Vorlage dieselbe Größe wie die Standardvorlage aufweisen. Sie können die benutzerdefinierte Vorlage jedoch vergrößern, wenn Sie das flag PD_USELARGETEMPLATE angeben, um eine größere Allgemeinseite zu erstellen. Die in der Standardvorlage drucken verwendeten Steuerelementbezeichner sind in der Datei Dlgs.h definiert.
Verwenden Sie die PRINTDLGEX-Struktur , um die Vorlage wie folgt zu aktivieren:
Wenn Ihre benutzerdefinierte Vorlage eine Ressource in einer Anwendung oder einer Dynamic Link-Bibliothek ist, legen Sie das flag PD_ENABLEPRINTTEMPLATE im Flags-Element fest. Verwenden Sie die Member hInstance und lpPrintTemplateName der -Struktur, um den Modul- und Ressourcennamen zu identifizieren.
-Oder-
Wenn sich Ihre benutzerdefinierte Vorlage bereits im Arbeitsspeicher befindet, legen Sie das flag PD_ENABLEPRINTTEMPLATEHANDLE fest. Verwenden Sie den hInstance-Member , um das Speicherobjekt zu identifizieren, das die Vorlage enthält.
Wenn Sie eine benutzerdefinierte Vorlage verwenden, um zusätzliche Steuerelemente zu definieren, müssen Sie ein Rückrufobjekt bereitstellen, um Eingaben für Ihre Steuerelemente zu verarbeiten. Das Rückrufobjekt implementiert eine IPrintDialogCallback::HandleMessage-Methode , die nachrichten empfängt, die an das benutzerdefinierte Dialogfeld gesendet werden.
So stellen Sie zusätzliche Eigenschaftenseiten bereit
Verwenden Sie die -Funktion, um die zusätzlichen Seiten zu erstellen.
Verwenden Sie den lphPropertyPages-Member der PRINTDLGEX-Struktur , um ein Array von Handles für die zusätzlichen Seiten anzugeben.
Die Dialogfeldprozeduren, die beim Erstellen jeder Seite angegeben wurden, verarbeiten Nachrichten, die an die Seiten gesendet werden.
Möglicherweise möchten Sie ein Rückrufobjekt bereitstellen, das die -Schnittstelle implementiert. Die PrintDlgEx-Funktion verwendet diese Schnittstelle, um der Anwendung einen Zeiger auf eine IPrintDialogServices-Schnittstelle zu übergeben. Die Dialogfeldprozeduren für die zusätzlichen Eigenschaftenseiten können diese Schnittstelle verwenden, um Informationen zum aktuell ausgewählten Drucker abzurufen.
Rückrufobjekt für das Print-Eigenschaftenblatt
Eine Anwendung, die ein Print-Eigenschaftenblatt anzeigt, kann ein Rückrufobjekt implementieren, um Benachrichtigungen und Meldungen von der PrintDlgEx-Funktion zu empfangen, während das Eigenschaftenblatt angezeigt wird. Um ein Rückrufobjekt bereitzustellen, geben Sie einen Zeiger auf das -Objekt im lpCallback-Member der PRINTDLGEX-Struktur an.
Das Rückrufobjekt muss die IPrintDialogCallback-Schnittstelle implementieren. Die PrintDlgEx-Funktion ruft in den folgenden Situationen IPrintDialogCallback-Methoden auf:
- Wenn das Dialogfeld initialisiert wurde
- Wenn der Benutzer einen anderen Drucker aus der Liste der installierten Drucker auswählt, die im Eigenschaftenblatt angezeigt wird
- Wenn Meldungen für das untergeordnete Dialogfeld im unteren Bereich der Seite Allgemein des Eigenschaftenblatts empfangen werden
Das Rückrufobjekt sollte auch die IObjectWithSite-Schnittstelle implementieren. Die PrintDlgEx-Funktion ruft die -Methode auf, um einen Zeiger an eine IPrintDialogServices-Schnittstelle an eine Anwendung zu übergeben. Die IPrintDialogCallback-Methoden können die IPrintDialogServices-Schnittstelle verwenden, um Informationen zum aktuell ausgewählten Drucker abzurufen. Die IPrintDialogServices-Schnittstelle ist auch für Anwendungen nützlich, die zusätzliche Seiten erstellen, die der Seite Allgemein des Eigenschaftenblatts Drucken folgen. Die Dialogfeldprozeduren für die zusätzlichen Seiten können IPrintDialogServices-Methoden aufrufen.