開発環境:WINDOWS2000 VB6 SP6
こんにちわ。
分からない事が出てきましたので、また皆さんのお知恵をお借りできればと思います。
PRINTDLG関数で、プリンタの設定をユーザーにしてもらい、その設定を印刷に適用したいと思います。
下記のサイトを参考にして作ってみました。
http://www.itmedia.co.jp/help/howto/win/win2000/ …
実行させてみると、プリンタの設定ダイログが表示され、設定も変更でき、印刷にも反映させることができました。
しかし、設定を再び変更しようとプリンタ設定ダイアログを開いた場合、以前の設定を渡しているはずなのですが、プリンタ名以外が反映されず、デフォルトの設定になってしまいます。(給紙方法や印刷の向きなど)
文字数制限により、問題と思われる部分のソースのみ書かせてもらいます。
hDevMode = GlobalAlloc(GHND, Len(vDevMode))
lpDevMode = GlobalLock(hDevMode)
CopyMemory ByVal lpDevMode, vDevMode, Len(vDevMode)
GlobalUnlock lpDevMode
hDevNames = GlobalAlloc(GHND, Len(vDevNames))
lpDevNames = GlobalLock(hDevNames)
CopyMemory ByVal lpDevNames, vDevNames, Len(vDevNames)
GlobalUnlock lpDevNames
vPrintDlg.lStructSize = Len(vPrintDlg)
vPrintDlg.hwndOwner = FormHwnd
vPrintDlg.hDevMode = hDevMode
vPrintDlg.hDevNames = hDevNames
vPrintDlg.Flags = 64
色々試してみたところ、vPrintDlg構造体のhDevModeに何も渡さずに実行しても、プリンタ名は反映されていました。
vPrintDlg構造体のhDevModeに、きちんとvdevModeが渡せていないというのが有力になってきたのですが、おかしいところが見当たらず、お手上げ状態になっています。
何でもいいのでよろしくお願い致します。
No.1ベストアンサー
- 回答日時:
vDevMode.dmDriverExtra の値は何ですか?
この回答への補足
アドバイスありがとうございます。
vDevMode.dmDriverExtra の値ですが、設定していませんので、0になっています。
あれから色々調べた所、他のプリンタではきちんと設定が反映されていて、
特定のプリンタのみが反映されていないようです。
jmhさんの推測通り、プリンタの拡張機能の部分に問題があるように思います。
vDevMode.dmDriverExtraの値の設定の仕方が現在わからず、調べております。
DEVMODE構造体の定義は、下記になっています。
Public Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmLogPixels As Integer
dmBitsPerPel As Long
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
話は変わりますが、PRINTDLGEXであれば上手くいくのではないかと試していたのですが、参考となるサンプルがなく、模索中です。
また何かアドバイスがございましたら、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- プリンタ・スキャナー 佐川急便のプリンターで印刷用の送り状が印刷時に詰まる 2 2022/11/23 18:25
- Word(ワード) Wordでの印刷サイズについて A4の原稿をB5サイズで出力したいとき、 印刷から用紙サイズの指定か 4 2022/04/30 09:51
- PowerPoint(パワーポイント) パワーポイントモバイル 印刷時に詳細設定をしたい 2 2022/05/16 16:34
- プリンタ・スキャナー エプソンのプリンタEP-879AWを使っていますが印刷文字がぼやけます。 家電量販店で写真印刷がメイ 4 2022/03/26 23:20
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- プリンタ・スキャナー 印刷 キャンセル&印刷できない 2 2022/11/29 16:45
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- Excel(エクセル) Excelであるシートだけ印刷できない 1 2022/04/01 09:04
- Excel(エクセル) エクセルのフッタやヘッダーについて 3 2023/02/04 09:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワードやエクセルで印刷をデフ...
-
エクセルシート A3にしてもA4...
-
Excelの表を二段で印刷したい
-
PDFのプリントアウトが重す...
-
B5をB4に並べて印刷したい!!
-
エクセルでB6サイズに印刷し...
-
グレースケールでも印刷すると...
-
イラストレーターでの印刷について
-
白の背景部分が灰色で印刷され...
-
JW-CADで印刷すると線が太くなる
-
作成したPDFファイルを自動表示...
-
名刺印刷がずれる
-
エクセルの印刷ダイアログをSen...
-
ワードで、10センチの長さの...
-
プリンターで印刷すると、小さ...
-
エクセルで網かけが印刷されま...
-
EXCELでカラー印刷
-
横断幕をロール紙にプリントす...
-
モノクロ印刷時にフォントの色...
-
ドットプリンタの互換性について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ワードやエクセルで印刷をデフ...
-
Excelの表を二段で印刷したい
-
エクセルシート A3にしてもA4...
-
JW-CADで印刷すると線が太くなる
-
エクセルでB6サイズに印刷し...
-
作成したPDFファイルを自動表示...
-
ソフト別に印刷設定を自動で変...
-
PDFのプリントアウトが重す...
-
パワーポイントの印刷が画面表...
-
PDF書類をずらして印刷したい
-
PDFファイルを作成すると四角い...
-
word印刷時に勝手に手差し印刷...
-
エクセルでブックごとにプリン...
-
PDFでの印刷余白
-
A3, A4サイズが混在したファイ...
-
PDFファイルを印刷するときにフ...
-
角2封筒の印刷方法
-
ワードで文書A4サイズ2枚をA3...
-
ワード A4サイズで作成した...
-
改ページプレビューで設定した...
おすすめ情報