1

Print 関数を持つ C++ で記述された COM コンポーネントがあります。この印刷関数は、印刷に使用するすべての設定を含むパラメーターとして、プリンターの hDC を取ります。以前は、これは VB6 コードから呼び出され、オブジェクトPrinter.hdcにすべてを設定した後にここで機能していました。Printer

コードは VB6 から VB.NET に変換され、やらなければならないことのほとんどがわかりました。古い Printer オブジェクトはMicrosoft.VisualBasic.PowerPacks.Printing.Compability.VB6.Printerクラスを通じて利用できますが、古いhdcプロパティはここではサポートされていません。

この hdc を入手する方法を誰か教えてもらえますか? GetHdevmode()この hdcはSystem.Drawing.Printing.PrinterSettingsオブジェクトと同じですか?

4

3 に答える 3

3

PrinterSettings.CreateMeasurementGraphics()によって返されるGraphicsオブジェクトから1つを取得できます。Graphics.GetHdc()メソッドを使用します。印刷後はReleaseHdc()を忘れないでください。

于 2010-01-12T17:07:23.297 に答える
1

hdc は getdevmode と同じではありませんが、hdc を使用せずに .net ですべてを行うことができます。古いコードを使用して時間を節約できる場合は、グラフィックス オブジェクトから hdc を取得し、nobugz の回答のように使用できます。しかし、プリンター用のグラフィックス オブジェクトがある場合は、グラフィックス オブジェクトに直接描画し、hdc を完全にスキップする方が簡単な場合があります。

于 2010-01-13T06:37:45.907 に答える