C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

プリンター ハンドル /furu (24/05/28(Tue) 13:46) #103139
Re[1]: プリンター ハンドル /Hongliang (24/05/28(Tue) 13:58) #103140
  └ Re[2]: プリンター ハンドル /furu (24/05/28(Tue) 14:56) #103143 解決済み


親記事 / ▼[ 103140 ]
■103139 / 親階層)  プリンター ハンドル
□投稿者/ furu (229回)-(2024/05/28(Tue) 13:46:47)

分類:[C#] 

VS2022 .Net Framewrok 4.8

Delphiの印刷プログラムをC#に移植しているのですが
印刷でわからないところがあります。

//Delphi7
Printer.BeginDoc;
Escape(Printer.Handle, PASSTHROUGH, xx, yy, zz); //gdi32.dll
Printer.EndDoc;

C#ではPrintDocument.Print()で行って
PrintPageイベントハンドラ内で
gdi32.dllのEscapeを呼ぼうとしたのですが
第1パラメーターのプリンターハンドルは
どこから持ってくればいいのでしょうか?

ちなみにプリンターは連帳用のドットプリンターで
ドライバーはGeneric/Text Onlyです。
[ □ Tree ] 返信 編集キー/

▲[ 103139 ] / ▼[ 103143 ]
■103140 / 1階層)  Re[1]: プリンター ハンドル
□投稿者/ Hongliang (1299回)-(2024/05/28(Tue) 13:58:14)
Escape関数の第1引数はデバイスコンテキストへのハンドルらしいので、
e.Graphics.GetHdc()
が返すIntPtrを渡せばよさそうに思えます。
なお、このハンドルが必要な関数を呼び終えた後は
e.Graphics.ReleaseHdc()
してやる必要があります。
[ 親 103139 / □ Tree ] 返信 編集キー/

▲[ 103140 ] / 返信無し
■103143 / 2階層)  Re[2]: プリンター ハンドル
□投稿者/ furu (230回)-(2024/05/28(Tue) 14:56:55)
No103140 (Hongliang さん) に返信
> Escape関数の第1引数はデバイスコンテキストへのハンドルらしいので、
> e.Graphics.GetHdc()
> が返すIntPtrを渡せばよさそうに思えます。
Hongliangさん、ありがとうございます。

うまくいきました。
解決済み
[ 親 103139 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -