
Die CPrintDialog -Klasse kapselt die Dienstleistungen durch das Windows-Standarddialogfeld zum Drucken. Print Standarddialogfelder bieten eine einfache Möglichkeit zu Dialogfeldern drucken und Druckereinrichtung in Einklang mit den Windows-Standards implementieren.
Wenn Sie möchten, können Sie auf den Rahmen für viele Aspekte des Druckvorgangs für Ihre Anwendung behandeln verlassen. In diesem Fall zeigt der Rahmen automatisch das Windows-Standarddialogfeld zum Drucken. Sie können auch den Rahmen Griff Drucken für Ihre Anwendung haben aber überschreiben das gewohnte Dialogfeld Drucken mit eigenen Druckdialogfeld. Weitere Informationen zur Verwendung des Rahmens Druckaufgaben behandeln, finden Sie im Artikel Printing im Visual C++ Programmer's Guide.
Wenn Sie Ihre Anwendung Drucken ohne Beteiligung des Frameworks verarbeiten möchten, können Sie Klasse CPrintDialog "wie besehen" mit dem Konstruktor bereitgestellt, oder Sie können Ihr eigenes Dialogfeldklasse von CPrintDialog ableiten und Schreiben eines Konstruktors an Ihre Bedürfnisse anzupassen. In jedem Fall verhält diese Dialogfelder Standarddialogfelder in MFC wie da sie von der Klasse CCommonDialog abgeleitet werden.
Um eine CPrintDialog -Objekt verwenden, zunächst erstellen Sie das Objekt mithilfe des Konstruktors CPrintDialog . Sobald das Dialogfeld erstellt wurde, können Sie festlegen oder Ändern der Werte in die M_pd -Struktur, die die Werte der Steuerelemente des Dialogfelds zu initialisieren. Die M_pd -Struktur ist der Typ PRINTDLG. Weitere Informationen über diese Struktur finden Sie unter die Win32 SDK-Dokumentation.
Wenn Sie nicht Ihren eigenen Griffe in M_pd für das hDevMode und hDevNames -Member angeben, werden Sie die GlobalFree -Funktion von Windows für diese Handles aufrufen, wenn Sie das Dialogfeld fertig sind. Wenn Sie das Framework zur Verfügung gestellten CWinApp::OnFilePrintSetupDruckereinrichtung-Implementierung verwenden, haben Sie nicht diese Handles frei. Die Griffe von CWinApp gepflegt werden und werden in CWinAppDestruktor freigegeben. Es ist nur notwendig, diese Handles frei, wenn Sie mithilfe von CPrintDialog Stand-Alone.
Rufen Sie nach der Initialisierung die Dialogfeld-Steuerelemente die Memberfunktion DoModal zum Anzeigen des Dialogfelds und erlauben den Benutzer, Druckoptionen auszuwählen. DoModal gibt zurück, ob der Benutzer die OK (IDOK) oder die Schaltfläche Abbrechen (IDCANCEL) ausgewählt.
Wenn DoModal IDOKzurückgibt, können Sie eine der CPrintDialogMemberfunktionen verwenden, zum Abrufen der vom Benutzer eingegebenen Informationen.
Die CPrintDialog::GetDefaults -Memberfunktion ist hilfreich für das Abrufen der aktuellen Drucker-Standardeinstellungen ohne ein Dialogfeld anzuzeigen. Dieser Member-Funktion erfordert keine Benutzerinteraktion.
Können Sie die Windows- CommDlgExtendedError -Funktion zu bestimmen, ob Fehler während der Initialisierung des Dialogfelds und erfahren Sie mehr über den Fehler. Weitere Informationen zu dieser Funktion finden Sie unter die Win32 SDK-Dokumentation.
CPrintDialog beruht auf der COMMDLG.DLL-Datei, das im Lieferumfang von Windows 3.1 und höher.
Um das Dialogfeld Anpassen, leiten Sie eine Klasse von CPrintDialog ab, bieten Sie eine benutzerdefinierte Dialogfeldvorlage, und fügen Sie eine Meldungszuordnung die Benachrichtigungsmeldungen aus den erweiterten Steuerelementen verarbeiten. Alle nicht verarbeiteten Nachrichten sollten auf die Basisklasse weitergegeben werden. Anpassen der Hook-Funktion ist nicht erforderlich.
Um die gleiche Nachricht unterschiedlich abhängig davon, ob das Dialogfeld Drucken oder Print-Installation zu verarbeiten, müssen Sie eine Klasse für jedes Dialogfeld ableiten. Sie müssen auch die Windows AttachOnSetup Funktion überschreiben, die behandelt die Erstellung eines neuen Dialogfelds, wenn die Schaltfläche Print Setup innerhalb eines Dialogfelds Drucken ausgewählt ist.
Weitere Informationen zur Verwendung von CPrintDialogfinden Sie unter Common Dialog-Klassen in Visual C++ Programmer's Guide.
# include lt;afxdlgs.h>
Klassenmember |nbsp; Basisklasse | Hierarchiediagramm
Beispiel&Nbsp; MFC-Beispiel DIBLOOK
Siehe auch&Nbsp;CPrintInfo