掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
PrintDialogで選択したプリンターで印刷するには? (ID:84904)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
魔界の仮面弁士さん、再RESありがとうございます。 >殆どのアプリは、規定のプリンタの設定は変更しないでしょう。 そ、そうですよね。やはり。 Windowsの付属アプリ「メモ帳」でさえそんなことしないのですから…。 >hDC プロパティに渡されるハンドルに対して、RichTextBox.SelPrint 等で >印刷を行う事になります。 Printerオブジェクトに対する描画周りは既にコーディング済みなので、 できれば変えたくなくて…(わがままでスイマセン…^^;) 工数オーバーなんで… >とすると、PrintDlg APIですかね。 ># Windows 2000以降では、hwndOwner を指定するかどうかで、 ># 見た目が大きく変化します。 あっ、そうなんですか…。 先ほどはとりあえず見た目だけ確認しようと思い、 google(Image)でPrintDlgをググって出てきたイメージで 見た目を確認しただけだったので、 「あー、見た目が違う…」と思って諦めてしまいました。 hwndOwnerを指定してやればコモンダイアログと 同じ見た目になるんですね!!(嬉) PrintDlg APIのサンプルを探してみたところ、 こちらのサイト様にありまして、 http://210.233.22.220/VBlabo/commonDLG/J042959.htm 見た目がOKなのは確認しました。 で、このコード中のNewPrinterNameに プリンタ名が取り出せているのですが…。 更に一つ問題が。DEVMODEの制限で32文字までしか帰ってこないのです。 上記のサイトに、 >DEVMODE 構造体の仕様により 32 文字を越えるプリンタ名は >取得できません。 >この場合 EnumPrinters API 関数を利用してプリンタ情報を >取得することが可能です。 とあるのですが、これはどうやればいいのでしょうか? また、どういう意味でしょうか… EnumPrintersってプリンタを列挙するAPIですよね??? さっぱり意図が…。 32文字以下のものに関しては取り出した後、 こちらのサイト様のサンプルを参考にさせていただいて作ったコードで 無事プリンターを指定することが出来ました。 http://www.bcap.co.jp/hanafusa/VBHLP/print03.htm (でも、XPではプリンタ名の頭に「自動」とか付いていたりするのですが、 こういうのも付いたままで指定できるかどうかはまだ疑問です。) 引き続きご指導いただけないでしょうか? よろしくお願い申し上げます。 # プリンターを選択するだけの処理に # こんなに苦労するとはおもわなかったなぁ。(T△T) # 完全に工数オーバーだ…(泣)
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.