• ベストアンサー

ピクチャーボックスの画像を印刷・BMPで保存したい

ピクチャーボックスの画像を印刷・BMPで保存したいのですがどうやったらいいのかわかりません誰か教えてください

質問者が選んだベストアンサー

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.4

きっとAutoRedrawがFalseのためでは? Picture1.Refresh Call SavePicture(Picture1.Image, "c:\test.bmp") としてあげてみてください

ryuta_mo
質問者

お礼

やっとできました ありがとうございます

その他の回答 (3)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.3

>プロパティの値が不正 おそらく画像を読み込んでいないピクチャボックスを保存しようとしたためだと思います。 何か画像が読み込まれていたならば、エラーはでません。 もし、Picuterが存在しないピクチャボックスを保存するなら Call SavePicture(Picture1.Image, "c:\test.bmp") としてあげたらよいと思います。

ryuta_mo
質問者

補足

やってみたら保存はされましたが何も表示されてませんでした ピクチャーボックスにはちゃんと描画されてます あとできれば白黒で保存したいのですが出来ますか?

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.2

それじゃあ、印刷を。 '(General)(Declarations) 'APIの宣言 Option Explicit Private Declare Function StretchBlt Lib "gdi32" _   (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long _   , ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long _   , ByVal dwRop As RasterOpConstants) As Long 'Picture1をクリックすると、プリンタでPicture1を印刷する。 Private Sub Picture1_Click()   Printer.PSet (0, 0), vbWhite  '*1   StretchBlt Printer.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight _   , Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight _   , vbSrcCopy '*2   Printer.EndDoc End Sub ******** (General)(Declarations)の中身については先の回答↓ http://www.okweb.ne.jp/kotaeru.php3?q=168025 と同じですね。 で、今回はピクチャーボックスをクリックしたときに、印刷するようにしてみました。 *1: APIを使って画像を転送する前に、一度プリンタを初期化しています。これより前に、Printer.Lineなどでプリンタに何か描画をしていれば、この行は無くても構いません。 *2: StretchBLTを使って、ピクチャーボックスの画像をプリンタに転送しています。 「StretchBLT」APIは、以下のように引数を指定します。 StretchBLT 複写先のオブジェクトのhDCプロパティ, 複写先のX座標, Y座標, 幅, 高さ, 複写元オブジェクトのhDCプロパティ, 複写元のX座標, Y座標, 幅, 高さ, 転送モード 転送モードについては、とりあえずは、vbSrcCopyを指定すると画像をコピーするっていうことだけ覚えておけばいいかと。 先の回答と同じく、質問等ありましたら補足などにお書きください。

ryuta_mo
質問者

お礼

そのままではできなかったけど色々手を加えたら出来ました ありがとうございました

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

とりあえず、保存だけ書いておきます。 Call SavePicture(Picture1.Picture, "c:\test.bmp")

ryuta_mo
質問者

補足

そのまま入力したけどプロパティの値が不正ですと出ました 何故でしょう

関連するQ&A