1

DataCardデスクトップカードプリンターを制御するための.NETアプリケーションに取り組んでいますが、問題が発生しました。磁気ストライプとチップエンコーディングを実行するには、ネイティブプリンターAPI dllの関数を呼び出して、プリンターのインタラクティブモードを有効にする必要があります。

このネイティブ関数を呼び出すためのP/Invokeコードを作成することができました。ただし、問題は、このメソッドがプリンターのデバイスコンテキストハンドルをパラメーターとして受け取り、Gdi32StartDoc関数が呼び出される前に呼び出す必要があることです。

.NET印刷APIでは、GraphicsオブジェクトからhDCにアクセスできます。しかし、私が見る限り、Graphicsオブジェクトは、StartDoc関数が呼び出された後にのみ使用可能になります。

だから私の質問は、StartDocが呼び出される前にコンテキストを取得する方法を誰かが知っているかどうかです。

4

1 に答える 1

1

を実行しOpenPrinterてプリンター ハンドルを取得し ( ) 、このハンドルを渡してHANDLE呼び出して、いつでも ( の前に) プリンター DC を取得できます。CreateDCStartDoc

于 2009-03-26T08:18:00.603 に答える