BitBltを使ってピクチャボックスに表示した画像を別のピクチャボックスに表示するものを作っています。
小さい画像の場合はいいのですが、画面より大きな画像(ピクチャボックス)を縮小表示しようとすると、画面よりはみ出た部分が縮小表示されません。
なにか対策方法がありましたらお教え下さい。
使用OSはXP,VBはVer6 SP5を使用しています。 よろしくお願いいたします。
それを画像の形を変えてしまうのではないでしょうか?
保存するときに困りませんか?
スクロールバーで移動というのはどうでしょうか?
これなら、画像の形自体を変えずに保存するときに困りませんし、
画像全体がどうなっているのか把握できると思います。
BitBltは等倍コピー用です。
拡大縮小したかったら、
StretchBltを使ってください。
また、Stretch = Trueにした
Imageコントロールに読み込む、という手もあります。
すみません。
BitBltではなく、よく見たらStretchBltを使ってやってました(汗)
実は、元画像が大きい際にはスクロールバーでスクロール表示させ(←この部分は成功)、その画像を 640 * 480 くらいに縮小して保存するツールが出来たらなぁ…と思って挑戦してました(まだ縮小表示から先に進めませんです)。
すみません。 お知恵をお貸し下さい。
では、WidthとHeightで直接行ってみてはどうでしょうか?
編集 削除いろいろなかたがたにアドバイスしていただき、本当にありがとうございました。m(__)m
もう少しいろいろやってみます。
>画面より大きな画像(ピクチャボックス)を縮小表示しようとすると
>画面よりはみ出た部分が縮小表示されません。
ちょっと、確認したいことがあるのですが
水無月さんのFormのAutoRedrawプロパティはTrueになってます
でしょうか?
念のため・・・
>FormのAutoRedrawプロパティ
正確に言うとコピー元のピクチャーボックスの
FormのAutoRedrawプロパティです。
>FormのAutoRedrawプロパティ
今確認しましたところ、なんとコピー元のフォーム、ピクチャボックスともAutoRedrawがFalseになっていました。 コピー先はいろいろいじったのですがコピー元をやっておかなかったのとは、まったくもっておばかさんでした。
しっかりと縮小した画像が表示されました!
みなさま本当にありがとうございましたm(__)m
↑(上の発言の訂正)
コピー元のピクチャボックスは画像読み込み終了とともにAutoRedraw=Trueにしていましたが、FormのAutoRedrawをFalseのままにしていました。
いづれにせよ皆様にご迷惑をおかけいたしました。
本当にありがとうございました。