Visual Studio:Objektinstanz vom Drucker nach printDialog->ShowDialog()? Sehe das Bild.
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.
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...
In alten guten Zeiten war so etwas möglich:
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
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
So muss das gehen(intuitive Vermutung...):
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
Die Sache klemmt noch.
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
Wie komme ich an die Zahlen von PrinterResolution? array..?
Das wird auch akzeptiert: printerResolution[0]->X;
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...
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
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 |
|
2 |
|
Bei der Erstellung vom Programm kommen aber Fehler. Hat jemand einen Rat...?
1 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
Mit 1100 und 850 als PaperSize kann ich leben. Aber mit -4 und -1 als Auflösung X, Y bin ich nicht einverstanden… Hat jemand einen Rat?
Ich habe schon die Lösung.
1 |
|
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...
Mit index 5 bekomme ich Aulösung 300;
"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.
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.."
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.
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.
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?
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.
Du hast recht..."unscheinbares Dropdown"
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?
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.







