またまた質問させていただきます。
今、MDIをしようしてアプリケーションを作成しているのですが、印刷機能をつけようとして困っています。
印刷には左右、上下にマージンがあり、さらに縮小/拡大も考慮しなければいけません。
やはりプリンタの設定を取得し、こつこつと配置を変えていかないといけないのでしょうか?
もっと簡単にマージンや縮小/拡大を反映させたいのですが・・・。
どうかよろしくお願いします。
GetDeviceCapsを使えばマージンは取れます。
マージンさえ取れればVCでの印刷って画面に書くのと同じだと思いますが?
さらに印刷領域だけを相手にするのならさらに画面に書くのと同じで。。。
//用紙の物理的な大きさ (ドット) PHYSICALWIDTH, PHYSICALHEIGHT
//用紙の描画領域の大きさ(ドット) HORZRES, VERTRES
//用紙の描画領域の大きさ(mm) HORZSIZE, VERTSIZE
//用紙の余白の大きさ(ドット) PHYSICALOFFSETX, PHYSICALOFFSETY
//論理インチごとのピクセル数 LOGPIXELSX, LOGPIXELSY
拡大/縮小は倍率を計算して当てるしかないかと思います。
画面に表示するにしても同じようなことをしているのでは?
慣れれば難しくないですよ。
しょーもない質問に返事ありがとうございます。
やっぱりプログラムも地道に作らないとだめですねぇ。
倍率を計算してマージンを考慮するとfloatからintへの変換によるWarningが何百と出てくるので、
何か言い方法はないかな?と思い質問しただけで・・・。(汗)
ほんと、お恥ずかしい・・・。