PRINTDLGEX

[Dies ist vorläufige Dokumentation und Änderungenvorbehalten.]

Die PRINTDLGEX -Struktur enthält Informationen, die die PrintDlgEx -Funktion verwendet, um das Eigenschaftenblatt Drucken zu initialisieren. Nachdem der Benutzer das Eigenschaftsfenster geschlossen wurde, verwendet das System diese Struktur zur Rückgabe von Informationen über die Benutzerauswahl.

typedef Struct TagPDEX {}
    DWORD lStructSize;
    HWND HwndOwner;
    HGLOBAL hDevMode;
    HGLOBAL hDevNames;
    HDC hDC;
    DWORD Flags;
    DWORD Flags2;
    DWORD ExclusionFlags;
    DWORD nPageRanges;
    DWORD nMaxPageRanges;
    LPPRINTPAGERANGE LpPageRanges;
    DWORD nMinPage;
    DWORD nMaxPage;
    DWORD nCopies;
    HINSTANCE hInstance;
    LPCTSTR LpPrintTemplateName;
    LPUNKNOWN LpCallback;
    DWORD nPropertyPages;
    HPROPSHEETPAGE * LphPropertyPages;
    DWORD nStartPage;
    DWORD DwResultAction;
} PRINTDLGEX, * LPPRINTDLGEX 

Mitglieder

lStructSize
Gibt die Strukturgröße der in bytes.
hwndOwner
Handle für das Fenster, das das Eigenschaftenblatt besitzt. Dieses Element muss ein gültiges Fensterhandle sein; Es darf nicht NULL sein.
hDevMode
Handle für einen beweglichen globalen Cache-Objekt, das enthält eine DEVMODE -Struktur. Wenn hDevMode nicht bei der Eingabe NULL ist, müssen Sie einen beweglichen Speicherblock für die DEVMODE -Struktur reservieren und initialisieren seiner Mitglieder. Die PrintDlgEx -Funktion verwendet die Eingabe Zielsystem Initialisieren der Steuerelemente im Eigenschaftenblatt. Wenn PrintDlgEx zurückgibt, geben die DEVMODE -Mitglieder die Eingabe des Benutzers.

Wenn hDevMode NULL bei der Eingabe ist, PrintDlgEx reserviert Speicher für die DEVMODE -Struktur, seiner Mitglieder an die Eingabe des Benutzers initialisiert und gibt einen Handle, der es gibt.

Weitere Informationen über die hDevMode und hDevNames Mitglieder finden Sie unter im Abschnitt Hinweise am Ende dieses Themas.

hDevNames
Handle für einen beweglichen globalen Speicher-Objekt, das eine DEVNAMES -Struktur enthält. Wenn hDevNames nicht bei der Eingabe NULL ist, müssen Sie einen beweglichen Speicherblock für die DEVNAMES -Struktur reservieren und initialisieren seiner Mitglieder. Die PrintDlgEx -Funktion verwendet die Eingabe Zielsystem Initialisieren der Steuerelemente im Eigenschaftenblatt. Wenn PrintDlgEx zurückgibt, enthalten die DEVNAMES -Mitglieder Informationen für den vom Benutzer ausgewählten Drucker. Sie können diese Informationen verwenden, um einen Gerätekontext oder einen Informationskontext erstellen.

Das hDevNames -Mitglied kann NULL sein, in diesem Fall, PrintDlgEx reserviert Speicher für die DEVNAMES -Struktur, seiner Mitglieder an den Benutzer des input, initialisiert und gibt einen Handle zurück, kennzeichnet es.

Weitere Informationen über die hDevMode und hDevNames Mitglieder finden Sie unter im Abschnitt Hinweise am Ende dieses Themas.

hDC
Handle für einen Gerätekontext oder einen Informationskontext, je nachdem, ob das Flags -Mitglied der PD_RETURNDC oder PC_RETURNIC-Flag gibt an. Wenn kein Flag angegeben ist, ist der Wert dieses Members nicht definiert. Wenn beide Flags angegeben sind, hat PD_RETURNDC Priorität.
Flaggen
Ein Satz von Bitflags, die Sie verwenden können, um das Eigenschaftenblatt Drucken zu initialisieren. Wenn die PrintDlgEx -Funktion zurückgibt, legt diese Flags an die Eingabe des Benutzers fest. Dieser Member kann eine Kombination der folgenden Flags sein.
PD_ALLPAGES
Die Standard-Flag, die angibt, dass zunächst alle Optionsfeld ausgewählt ist. Dieses Flag wird als Platzhalter verwendet, um anzugeben, dass die PD_PAGENUMS, PD_SELECTION und PD_CURRENTPAGE Flags nicht angegeben sind.
PD_COLLATE
Wenn dieses Flag festgelegt ist, wird das Kontrollkästchen Sortieren überprüft.

Wenn dieses Flag festgelegt ist, wenn die PrintDlgEx -Funktion zurückgibt, muss die Anwendung Sortierung mehrerer Kopien simulieren. Weitere Informationen finden Sie unter die Beschreibung der PD_USEDEVMODECOPIESANDCOLLATE Flagge.

PD_CURRENTPAGE
Wenn dieses Flag festgelegt ist, wird die Optionsschaltfläche Aktuelle Seite ausgewählt. Wenn keines der PD_PAGENUMS, PD_SELECTION oder PD_CURRENTPAGE festgelegt ist, ist das alle Optionsfeld aktiviert.
PD_DISABLEPRINTTOFILE
Deaktiviert das Kontrollkästchen in Datei Drucken.
PD_ENABLEPRINTTEMPLATE
Gibt an, dass die hInstance und LpPrintTemplateName Mitglieder im unteren Teil der Seite Allgemein einen Ersatz für die standardmäßige Dialogfeld im Feld Vorlage angeben. Die Standard-Vorlage enthält Steuerelemente ähnlich denen im Dialogfeld " Drucken ". Das System verwendet die angegebene Vorlage zum Erstellen eines Fensters, das ein Kind von der Seite " Allgemein ".
PD_ENABLEPRINTTEMPLATEHANDLE
Gibt an, dass das hInstance Mitglied ein Datenblockes identifiziert, das eine vorgespannte Dialogfeld Feld Vorlage enthält. Diese Vorlage ersetzt das standardmäßige Dialogfeld Feld Vorlage im unteren Teil der Seite Allgemein . Das System verwendet die angegebene Vorlage zum Erstellen eines Fensters, das ein Kind von der Seite " Allgemein " ist. Das System ignoriert den LpPrintTemplateName Member, wenn dieses Flag angegeben ist.
PD_EXCLUSIONFLAGS
Gibt an, dass das ExclusionFlags -Element identifiziert Elemente aus der Drucker-Treiber-Eigenschaftenseiten ausgeschlossen werden. Wenn dieses Flag nicht festgelegt ist, werden Elemente aus der Drucker-Treiber-Eigenschaftenseiten standardmäßig ausgeschlossen. Die Ausschlüsse zu verhindern, dass die Duplizierung von Elementen zwischen der allgemeinen Seite, jede Anwendung angegebenen Seiten und die Drucker-Treiber-Seiten.
PD_HIDEPRINTTOFILE
Verbirgt das Kontrollkästchen in Datei Drucken.
PD_NOCURRENTPAGE
Deaktiviert die Optionsschaltfläche Aktuelle Seite.
PD_NOPAGENUMS
Deaktiviert das Optionsfeld Seiten und die zugehörigen Edit-Steuerelemente.
PD_NOSELECTION
Deaktiviert die Schaltfläche Auswahl radio.
PD_NOWARNING
Verhindert, dass die Warnmeldung angezeigt wird, wenn ein Fehler auftritt.
PD_PAGENUMS
Wenn dieses Flag festgelegt ist, wird das Optionsfeld Seiten aktiviert. Wenn keines der PD_PAGENUMS, PD_SELECTION oder PD_CURRENTPAGE festgelegt ist, ist das alle Optionsfeld aktiviert.

Wenn dieses Flag festgelegt ist, wenn die PrintDlgEx -Funktion zurückgibt, zeigt das LpPageRanges Mitglied der Seitenbereiche, die vom Benutzer angegebenen.

PD_PRINTTOFILE
Wenn dieses Flag festgelegt ist, wird das Kontrollkästchen Ausgabe in Datei ausgewählt.

Wenn dieses Flag festgelegt ist, wenn PrintDlgEx zurückgibt, der durch den wOutputOffset -Member der Struktur DEVNAMES angegebenen Offset enthält die Zeichenfolge "FILE:". Beim Aufruf der StartDoc -Funktion, um den Druckvorgang zu starten geben Sie das "Datei:" Zeichenfolge in der LpszOutput Mitglied der DOCINFO Struktur. Diese Zeichenfolge bewirkt, dass das Druckteilsystem den Benutzer für den Namen der Ausgabedatei Abfragen.

PD_RETURNDC
Bewirkt, dass PrintDlgEx wieder einen Gerätekontext entsprechen der Auswahl durch den Benutzer im Eigenschaftenblatt. Der Gerätekontext wird in hDC zurückgegeben.
PD_RETURNDEFAULT
Wenn dieses Flag festgelegt ist, wird die PrintDlgEx -Funktion das Eigenschaftenblatt nicht angezeigt. Stattdessen setzt das hDevNames und hDevMode Mitglieder auf Handles zu DEVMODE und DEVNAMES -Strukturen, die für den System-Standarddrucker initialisiert werden. HDevNames und hDevMode müssen NULL sein, oder PrintDlgEx gibt einen Fehler zurück.
PD_RETURNIC
Ähnlich wie das PD_RETURNDC-Flag, außer dieses Flag gibt einen Informationskontext anstatt einen Gerätekontext zurück. Wenn weder PD_RETURNDC noch PD_RETURNIC angegeben ist, ist hDC am Ausgang undefiniert.
PD_SELECTION
Wenn dieses Flag festgelegt ist, ist die Optionsschaltfläche Auswahl aktiviert.

Wenn keines der PD_PAGENUMS, PD_SELECTION oder PD_CURRENTPAGE festgelegt ist, ist das alle Optionsfeld aktiviert.

PD_USEDEVMODECOPIES
Identisch PD_USEDEVMODECOPIESANDCOLLATE
PD_USEDEVMODECOPIESANDCOLLATE
Dieses Flag gibt an, ob Ihre Anwendung mehrere Kopien und Sortierung unterstützt. Legen Sie dieses Flag bei der Eingabe an, dass Ihre Anwendung mehrere Kopien und Sortierung nicht unterstützt. In diesem Fall der nCopies -Member der Struktur PRINTDLGEX gibt immer 1 zurück, und PD_COLLATE wird nie in den Flags festgelegt.

Wenn dieses Flag nicht festgelegt ist, ist die Anwendung für Siebdruck und Sortieren von mehreren Kopien verantwortlich. In diesem Fall das nCopies Mitglied der PRINTDLGEX -Struktur gibt die Anzahl der Kopien, die der Benutzer möchte drucken, und das PD_COLLATE-Flag in den Flags gibt an, ob der Benutzer die Sortierung möchte.

Unabhängig davon, ob dieses Kennzeichen gesetzt ist eine Anwendung kann aus nCopies und PD_COLLATE bestimmen, wie viele Kopien zu machen und ob sie gedruckt sortiert.

Wenn dieses Flag festgelegt ist, und der Druckertreiber nicht mehrere Kopien unterstützt, ist das Kopien -Edit-Steuerelement deaktiviert. Ebenso, wenn dieses Flag festgelegt ist, und der Druckertreiber keine Sortierung unterstützt, das Kontrollkästchen Sortieren deaktiviert ist.

Die DmCopies und DmCollate Mitglieder der DEVMODE -Struktur enthält die Kopien und sammeln Informationen vom Druckertreiber verwendet. Wenn dieses Flag festgelegt ist, und der Druckertreiber mehrere Kopien unterstützt, gibt das DmCopies -Element die Anzahl der vom Benutzer angeforderten Kopien. Wenn dieses Flag festgelegt ist und der Druckertreiber unterstützt die Sortierung, angibt der DmCollate -Member der DEVMODE -Struktur, ob der Benutzer Sortierung will. Wenn dieses Flag nicht festgelegt ist, gibt das DmCopies -Mitglied immer 1 zurück, und der DmCollate -Member ist immer 0 (null).


Flags2
Vorbehalten; NULL muss sein.
ExclusionFlags
Ein Satz von Bitflags, die Elemente aus der Drucker-Treiber-Eigenschaftenseiten im Eigenschaftenblatt Drucken ausschließen können. Dieser Wert wird verwendet, nur wenn das PD_EXCLUSIONFLAGS-Flag in den Flags festgelegt ist. Ausgrenzung Flags sollte verwendet werden, nur, wenn das Element ausgeschlossen werden oder über eine anwendungsdefinierte Seite im Eigenschaftenblatt Drucken auf entweder der Allgemeine Seite aufgenommen wird. Dieser Member kann das folgende Flag angeben.
PD_EXCL_COPIESANDCOLLATE
Schließt die Kopien und Collate -Steuerelemente aus der Drucker-Treiber-Eigenschaftenseiten in einem Eigenschaftenblatt Drucken . Dieses Flag sollte immer gesetzt sein, wenn die Anwendung die Standard- Kopien und Collate Steuerelemente bereitgestellt durch den unteren Teil der Seite Allgemein des Eigenschaftenblatts Print verwendet.

nPageRanges
Legen Sie auf Eingabe dieser Member auf die anfängliche Anzahl der Seitenbereiche, die im LpPageRanges -Array angegeben. Wenn die PrintDlgEx -Funktion zurückgibt, gibt nPageRanges die Anzahl der benutzerspezifischen Seitenbereiche im LpPageRanges -Array gespeichert. Wenn das PD_NOPAGENUMS-Flag angegeben ist, ist dieser Wert nicht gültig.
nMaxPageRanges
Gibt die Größe in Array-Elemente, von der LpPageRanges -Puffer. Dieser Wert gibt die maximale Anzahl der Seitenbereiche, die im Array gespeichert werden kann. Wenn das PD_NOPAGENUMS-Flag angegeben ist, ist dieser Wert nicht gültig. Wenn das PD_NOPAGENUMS-Flag nicht angegeben ist, muss dieser Wert größer als 0 (null) sein.
lpPageRanges
Zeiger auf einen Puffer mit einem Array von PRINTPAGERANGE Strukturen. Bei der Eingabe enthält das Array die erste Seite reicht bis in die Seiten -Edit-Steuerelement anzuzeigen. Wenn die PrintDlgEx -Funktion zurückgegeben wird, enthält das Array die vom Benutzer angegebenen Seitenbereichen.

Wenn das PD_NOPAGENUMS-Flag angegeben ist, ist dieser Wert nicht gültig. Wenn das PD_NOPAGENUMS-Flag nicht angegeben ist, muss LpPageRanges ungleich NULL sein.

nMinPage
Gibt den Mindestwert für die Seitenbereiche in der Seiten -Edit-Steuerelement angegeben. Wenn das PD_NOPAGENUMS-Flag angegeben ist, ist dieser Wert nicht gültig.
nMaxPage
Gibt den maximalen Wert für die Seitenbereiche in der Seiten -Edit-Steuerelement angegeben. Wenn das PD_NOPAGENUMS-Flag angegeben ist, ist dieser Wert nicht gültig.
nCopies
Die anfängliche Anzahl von Kopien für die Kopien -Edit-Steuerelement enthält, wenn hDevMode NULL ist; ansonsten das DmCopies Mitglied der DEVMODE -Struktur enthält den Anfangswert.

Wenn PrintDlgEx zurückgibt, enthält nCopies die tatsächliche Anzahl der Kopien, die die Anwendung drucken muss. Dieser Wert hängt davon ab, ob die Anwendung oder den Druckertreiber für den Druck mehrerer Kopien verantwortlich ist. Wenn das PD_USEDEVMODECOPIESANDCOLLATE-Flag in den Flags festgelegt ist, nCopies ist immer 1 auf Rückkehr, und der Druckertreiber ist verantwortlich für mehrere Kopien drucken. Wenn das Flag nicht festgelegt ist, ist die Anwendung zuständig für den Druck von der Anzahl der Kopien, die von nCopiesangegeben. Weitere Informationen finden Sie unter die Beschreibung der PD_USEDEVMODECOPIESANDCOLLATE Flagge.

hInstance
Wenn das PD_ENABLEPRINTTEMPLATE-Flag in den Flags festgelegt ist, ist hInstance das Handle der Anwendung oder Modul-Instanz, die das Dialogfeld Feld Vorlage durch das LpPrintTemplateName -Element mit dem Namen enthält. Wenn das PD_ENABLEPRINTTEMPLATEHANDLE-Flag in den Flags festgelegt ist, ist hInstance das Handle für ein Objekt mit eine Dialogfeldvorlage. Wenn keine der Vorlagen Flaggen in den Flags festgelegt ist, sollte HINSTANCE-Wert NULL sein.
lpPrintTemplateName
Zeiger auf eine auf Null endende Zeichenfolge, die Vorlage eine Dialogfeldressource im Modul identifiziert das hInstance -Mitglied benennt. Diese Vorlage ersetzt das standardmäßige Dialogfeld Feld Vorlage im unteren Teil der Seite Allgemein . Die Standard-Vorlage enthält Steuerelemente ähnlich denen im Dialogfeld " Drucken ". Dieser Member wird ignoriert, es sei denn, das PD_ENABLEPRINTTEMPLATE-Flag in den Flags gesetzt ist.
lpCallback
Zeiger auf ein anwendungsdefinierter Rückrufobjekt.

Das Objekt sollte Klasse IPrintDialogCallback zum Empfangen von Nachrichten für das Dialogfeld "Kind" im unteren Teil der allgemeinen Seite enthalten.

Das Callback-Objekt sollte auch die IObjectWithSite -Klasse, um einen Zeiger auf die IPrintDialogServices -Schnittstelle erhalten. Die Funktionsaufrufe PrintDlgEx QueryInterface auf das Rückrufobjekt für IID_IPrintDialogCallback und IID_IObjectWithSite zu bestimmen, welche Schnittstellen unterstützt werden.

Wenn Sie nicht Rückrufs Informationen abrufen möchten, legen Sie LpCallback auf NULL.

nPropertyPages
Gibt die Anzahl der Eigenschaft Seite Handles im Array lphPropertyPages.
lphPropertyPages
Enthält ein Array von Eigenschaft Seite griffen die Print -Eigenschaftenblatt hinzu. Die zusätzliche Eigenschaftenseiten folgen die Allgemeine Seite. Verwendung der CreatePropertySheetPage Funktion, um diese zusätzlichen Seiten erstellen. Wenn nPropertyPages NULL ist, sollte LphPropertyPages NULL sein.
nStartPage
Legt die Eigenschaftenseite, die angezeigt wird. Geben Sie zum Anzeigen der Seite " Allgemein " START_PAGE_GENERAL. Geben Sie andernfalls den nullbasierten Index einer Eigenschaftenseite in das Array, in das LphPropertyPages -Element angegeben. Aus Konsistenzgründen wird empfohlen, dass das Eigenschaftenblatt immer auf der allgemeinen Seite gestartet werden.
dwResultAction
Setzen Sie bei der Eingabe dieser Member auf NULL. Wenn die PrintDlgEx -Funktion S_OK zurückgibt, enthält DwResultAction das Ergebnis des Dialogs. Wenn PrintDlgEx einen Fehler zurückgibt, sollte dieses Element ignoriert werden. Das DwResultAction -Element kann eine der folgenden Werte sein.
Wert Bedeutung
PD_RESULT_APPLY Der Benutzer klicken auf die Schaltfläche übernehmen und später die Schaltfläche Abbrechen geklickt. Dies bedeutet, dass der Benutzer die im Eigenschaftenfenster vorgenommenen Änderungen zu übernehmen will, aber will nicht noch drucken. Die PRINTDLGEX -Struktur enthält die Informationen, die vom Benutzer angegeben, dass die übernehmen -Schaltfläche geklickt wurde.
PD_RESULT_CANCEL Der Benutzer auf die Schaltfläche Abbrechen geklickt. Die Informationen in der PRINTDLGEX -Struktur bleibt unverändert.
PD_RESULT_PRINT Der Benutzer auf die Schaltfläche Drucken geklickt. Die PRINTDLGEX -Struktur enthält die Informationen, die vom Benutzer angegebenen.

Bemerkungen

Wenn Sie die Funktion PrintDlgEx aufrufen sicher sein, dass der wDeviceOffset -Member der Struktur DEVNAMES ist identisch mit der DmDeviceName Mitglied der der DEVMODE -Struktur. Wenn diese Member nicht denselben Drucker angeben, initialisiert PrintDlgEx das Verwendung des Druckers durch das wDeviceOffset -Element angegebene Eigenschaftenblatt.

In der Regel, wenn hDevMode und hDevNames NULL sind, initialisiert PrintDlgEx mit den aktuellen Standarddrucker Eigenschaftenblatt. Jedoch verwendet, wenn die PD_RETURNDEFAULT Flag gesetzt ist und NULL hDevMode und hDevNames sind, PrintDlgEx das hDevNames und hDevMode Mitglieder Informationen über den aktuellen Standarddrucker zurück, ohne das Eigenschaftenblatt anzuzeigen.

Während der Ausführung von PrintDlgExdie DEVMODE und DEVNAMES -Strukturen, die Sie in der PRINTDLGEX -Struktur angegeben nicht immer aktuelle Daten enthalten. Aus diesem Grund sollten anwendungsspezifische Eigenschaftenseiten sowie IPrintDialogCallback -Routinen für die erste Seite die IPrintDialogServices -Schnittstelle verwenden, um Informationen über den Zustand des aktuellen Druckers abrufen.

QuickInfo

&Nbsp; Windows NT: Version 5.0 oder höher erforderlich.
Windows:Nicht unterstützt.
Windows CE:Nicht unterstützt.
Header:In commdlg.h deklariert.
Importieren Bibliothek:Verwenden Sie comdlg32.lib.
Unicode:Als Unicode und ANSI Strukturen definiert.

Siehe auch

Common Dialog Box Library Overview, Common Dialog Box Structures, CreateDC, CreateIC, CreatePropertySheetPage, DEVMODE, DEVNAMES, IObjectWithSite, IPrintDialogCallback, IPrintDialogServices, PrintDlgEx

Index