いつもお世話になっています。
開発環境はVC++ .NET2003 Windows2000 SP4です。
実現したいこと
①ショートカットキー・・・1動作で画面のハードコピーを印刷(A4用紙1枚)
問題点
・画面のハードコピーを印刷する処理はできていますが、
ディスプレイ色が256色の為、中間色が黒色として印刷される。
処理の流れ
①デスクトップのDC(pDskDC)を取得
②CreateCompatibleDCに引数pDskDCを渡し新たなDC(pNewDC)を作成
③pNewDCをプリンタ用のDCに渡し印刷
調査内容
・CreateCompatibleDC(pDskDC)の前でpDskDC,後でpNewDCをビットマップに保存した結果
//ディスプレイ色256色
pDskDC---中間色は中間色として保存されている
pNewDC---中間色は黒色として保存されている
//ディスプレイTrueColor
pDskDC---中間色は中間色として保存されている
pNewDC---中間色は中間色として保存されている
案
①CreateCompatibleDC(pDskDC)の前でビットマップに保存し、バッチファイルで
mspaint /p XXXX.bmpで印刷する。
①の結果
中間色は中間色として印刷されています。
①の問題点
・DOSのmspaintで印刷用の引数しかみつかっていないのですが、bmp画像を
拡大、縮小するサイズ変更のための引数が存在しているのか??
1280*1024のため、そのままのサイズで出力されA4用紙1枚ではなく2枚以上で
出力されてしまいます。
②ディスプレイデバイスコンテキストを使用せずに、もしくは
CreateCompatibleDC()を使用せずにビットマップの拡大縮小が
できると一番シンプルに解決できてうれしいのですが・・・。
以上の点でみなさんのお考えをお教えしていただきたいと思います。
この案は実現不可能など、意見をお願いいたします。
ツイート | ![]() |