B. P. schrieb:> Sehe das Bild.
Dann such mal in deinem Bild nach den Unterschied zwischen
"printDialog1" und "PrinterResolutionXY". Das sind nämlich zwei
verschiedene Variablen, auch wenn sie ein paar Buchstaben gemeinsam
haben.
Εrnst B. schrieb:> Dann such mal in deinem Bild nach den Unterschied zwischen> "printDialog1" und "PrinterResolutionXY"
Wie bekomme ich Zugriff auf den Drucker der im printDialog
ausgewählt wurde? ich brauche Info über Drucker...
Zumindest das Windows.Forms PrintDialog hat ein PrinterSettings-Property
das durch den Dialog beim Öffnen für die Defaultwerte im Dialog
verwendet wird und nach Schließen des Dialogs die im Dialog gewählten
Drucker-Settings enthält.
In PrinterSettings wiederrum steckt auch PrinterResolutions.
https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.printdialog.printersettings?view=windowsdesktop-7.0
Man kann auch direkt ein PrinterSettings-Objekt instanziieren, das
enthält dann meine ich direkt die Angaben zum Standarddrucker.
Via PrinterSettings.InstalledPrinters kann man sich die Namen der
verfügbaren Drucker holen. Setzt man bei einem PrinterSettings-Objekt
das PrinterName-Property auf einen der verfügbaren Druckernamen wird in
das PrinterSettings-Objekt der Kram zum jeweiligen Drucker rein geladen.
https://learn.microsoft.com/en-us/dotnet/api/system.drawing.printing.printersettings?view=windowsdesktop-7.0
B. P. schrieb:> Wie komme ich an die Zahlen von PrinterResolution? array..?
Wenn ein kompetenter Programmiererer solche Fragen hat, schaut er sich
gewöhnlich einfach die Deklaration der Struktur an...
Das Ergebnis auf dem Screenshot. Einzige Information die ich nach dem
Rücker vom printDialog1→ShowDialog() auslesen kann ist der Drucker
Name. Ich wollte dann den tradionellen Weg gehen:
1
LPHANDLEhPr;wchar_t*wchs=L"DruckerName";
2
OpenPrinterW(wchs,hPr,0);
Bei der Erstellung vom Programm kommen aber Fehler. Hat jemand einen
Rat...?
Man muss array index von 0 bis x (bei mir 4) durchsuchen
bis man keinen negativen Wert bekommt. Eine Art von Abstufung
vom Printer Auflösung von High bis...
"The horizontal printer resolution, in dots per inch, if Kind is set to
Custom; otherwise, a dmPrintQuality value."
Ein Wert von -1 entspricht DMRES_HIGH.
Findest du alles in der Dokumentation von Microsoft.
Roger S. schrieb:> Findest du alles in der Dokumentation von Microsoft.
Dokumentation ist sehr wichtig. Wenn du über Dokumentation
schreibst,schreibst du über das, was im Visual Studio integriert
ist, oder hast du noch eine andere Quelle? Bei Problemen, Suche über
google führt immer zu C#. C++/CLI scheint ein nicht geliebtes
Stiefkind zu sein. Die Situation ist ähnlich wie beschreibt das
einen Zitat von Jeffrey Richter Buch „Windows Programmierung für
Experten“ von 90. Jahren. Zitat: „Das die Beispielprogramme dennoch
C reinsten Wasser sind, liegt daran, dass die meistens
Windows-Programmiere nach wie vor nicht auf C++ umgestiegen sind.."
B. P. schrieb:> Bei Problemen, Suche über> google führt immer zu C#. C++/CLI scheint ein nicht geliebtes> Stiefkind zu sein.
Schau dir die MS-Seiten nochmal genau an. Da gibt's ein unscheinbares
Dropdown, mit dem du zwischen C# und C++/CLI (dort frecherweise nur als
C++ bezeichnet) umschalten kannst.
Auf der Seite mit den Druckauflösungen macht das Umschalten genau den
Unterschied zwischen "public enum PrinterResolutionKind" und "public
enum class PrinterResolutionKind" ... natürlich klar, dass die
Information auf der Seite für C++/CLI komplett unverständlich ist, wenn
man den Umschalt-Knopf nicht gefunden hat, und da C# Syntax angezeigt
wird.
B. P. schrieb:> Dokumentation ist sehr wichtig. Wenn du über Dokumentation> schreibst,schreibst du über das, was im Visual Studio integriert> ist, oder hast du noch eine andere Quelle?
Die online Dokumentation, der Einstiegspunkt für mich ist Google (suche
nach der Struktur oder Funktionsnamen).
> Bei Problemen, Suche über google führt immer zu C#.
Das ist eigentlich egal, du nutzt ja .NET komponenten, da musst du halt
bloss die Syntax auf Dein C++/CLI umdenken.
> C++/CLI scheint ein nicht geliebtes Stiefkind zu sein.
In der Tat.
> Die Situation ist ähnlich wie beschreibt das> einen Zitat von Jeffrey Richter Buch „Windows Programmierung für> Experten“ von 90. Jahren. Zitat: „Das die Beispielprogramme dennoch> C reinsten Wasser sind, liegt daran, dass die meistens> Windows-Programmiere nach wie vor nicht auf C++ umgestiegen sind.."
In den 90er war MFC der heisse Scheiss.
Εrnst B. schrieb:> Schau dir die MS-Seiten nochmal genau an. Da gibt's ein unscheinbares> Dropdown, mit dem du zwischen C# und C++/CLI (dort frecherweise nur als> C++ bezeichnet) umschalten kannst.
Könntest du einen Link posten zu einer Seite wo diese Umschaltung
möglich ist?
B. P. schrieb:> Du hast recht..."unscheinbares Dropdown"
Aber die Ironie, dass der Beispiel-Code mit Auswahl auf "C#" mehr nach
(echtem) C++ aussieht, als bei der Wahl von "C++"(/CLI), ist dir
entgangen?