Nach der folgenden Seite:C# kundenspezifische Printdialog PInvoke DevMode Frage
http://msdn.microsoft.com/en-us/library/ms646964(VS.85).aspx
unterhalb der ersten Grafik: „Wenn der Benutzer auf die Schaltfläche OK klickt, PrintDlg liefert TRUE und die PRINTDLG Struktur informmation über die zurück Benutzerauswahl ".
In diesem Fall funktioniert mein benutzerdefinierter Druckdialog fast, aber ich versuche, Informationen über den Druckernamen, die Ausrichtung usw. zu extrahieren. Mein Verständnis ist, dass ich den Druckernamen abrufen muss Untersuchen Sie den hDevMode-Wert aus der Struktur PRINTDLG, um den Druckernamen anzuzeigen. Gibt es eine Funktion, mit der ich diese Informationen extrahieren kann?
Mein Code ist wie (wo PDLG meine definierte Instanz der Struktur PRINTDLG ist):
bool f = false;
try
{
f = PrintDlg(ref pdlg);
DEVMODE dm = pdlg.hDevMode;
int k = 0;
} catch (Exception ex)
{
// hopefully it doesn't fail
}
Wenn jemand jede pearlsof Weisheit hat da draußen, würde ich sicher, irgendwelche Tipps zu schätzen wissen.
Vielen Dank. Es gibt ein Problem, DEVMODE.devName zu öffnen, wenn der betreffende Drucker länger als 32 Zeichen ist. Ich konnte zusätzliche Informationen herausholen, aber dieses Feld konnte letztendlich nicht benutzt werden, also ging ich damit fort – coson