• 締切済み

画像表示

PictureBoxで画像を表示します。 オブジェクトのサイズより画像の方が大きい場合に、画像をオブジェクト内で動かして表示するにはどうしたらいいでしょうか?

みんなの回答

  • gungnir7
  • ベストアンサー率43% (1124/2579)
回答No.2

確かにVBの環境が分からなければ答えようのない問題ですが・・・ 画像の変移を表示するには水平と垂直のスクロールバーを配置して PictureBoxとの三位一体で表現いたします。 PictureBoxに入り切らない部分がスクロールバーの変移量です。 画像の大きさをwid,hgtとおけば  水平方向 wid-pic.scalewidth  垂直方向 hgt-pic.scaleheight これを水平及び垂直スクロールバーのMAXにセットします。 スクロールバーを動かしたときにchangeイベントが発生します。 ここで画像が動く処理を記述します。 変移量はValueで返ってくるので、これを元に画像を動かします。 画像の方は一部を切り出す必要があるので 非表示のPictureBoxを用意しそちらに読み込ませます。 裏方のPictureBoxを用意すれば柔軟性が高くなります。 裏方のPictureBoxはAutoRedraw、AutoSizeともにTrueにします。 あとはPaintPictureで次のようにします。 Pic.PaintPicture,PicHidden,0,0,,,H.value,V.Value,,,vbSRCCopy 初回のコードは非常にややこしいのですが、 一度書いてしまえば応用が幾らでも利きますから頑張りましょう。

noname#39145
質問者

お礼

ごめんなさい。 色々と情報が足りなかったみたいですね。 スクロールバーを使用するのではなく、スロットのリールのようなものを表現したかったのです。 自分でなんとか解決しました。 お手数おかけしました。

回答No.1

VB環境がわからないのですが、VisualBasic.NETでしょうか? Panelコントロールを置き、その中にPictureBoxを置いて、 PanelコントロールのAutoScrollプロパティをtrueにすることで 大きな画像が入ってもスクロールできる方法があります。 参照: http://dobon.net/vb/dotnet/graphics/scrollimage.html

noname#39145
質問者

補足

ごめんなさい。 VB6.0です。

関連するQ&A