• 締切済み

画像の表示について

1.imageボックスを用いた場合、pictureプロパティで画像を参照した後Stretch=Trueにするとそのimageの大きさに合わせて画像を縮小して表示してくれます。   pictureボックスのときはその大きさに合わせて画像を縮小して表示できません。AutoSize=tureにしても画像の大きさにpictureボックスが大きくなってしまうだけです。 pictureボックスにはそのような縮小機能はないのでしょうか? 指定する画像を縮小して保存し直すしかないのでしょうか? そうすると表示したい大きさに合わせるのが大変で・・・。 2.ひとつのフォーム上に与えられた変数によって 画像を表示したいと考えています。 私たちが習ったのは 1. まずpictureボックスを1つ用意する。 2. 表示したい枚数だけimageボックスを準備しその中に画像をpictureプロパティで指定する。(画像5枚につきimageボックス5つ) 3. textボックスに数字をいれcommandボタンをおす。 4. その値によって picture1.piture=image1.picture という具合で表示させる。 こうなると表示したい画像が10枚あればimageボックスが 10個必要になりますよね。 そうなるとフォーム上がごちゃごちゃなってしまいます。 そうしないように画像をアドレスを指定して直接いれることはできませんか? image1.picture="gazou1.bmp"(エラーでした・・・。)みたいな感じで・・・。 そうするとimageボックスを1つしか作らなくてよいのですっきりするのですが。 以上2つよろしくお願いします。

みんなの回答

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

1.画像の拡大縮小について あらかじめ用意すること Form1.ScaleMode = 3'ピクセル Pictrue1.AutoRedraw = True Pictrue1.AutoSize = Flase Pictrue1.Visible = True Pictrue1.ScaleMode = 3'ピクセル Pictrue2.AutoSize = True Pictrue2.Visible = Flase Pictrue1.ScaleMode = 3'ピクセル と設定しておく Picture2に画像を読み込んでおく サイズが変更されるたびに以下の処理を行う   With Me     Picture1.Cls     Call Picture1.PaintPicture(.Picture2.Image, 0, 0, .Picture1.ScaleWidth, .Picture1.ScaleHeight, 0, 0, .Picture2.ScaleWidth, .Picture2.ScaleHeight, vbSrcCopy)   End With End Sub 2.画像インデックスについて、 1つのピクチャボックスに複数個の画像を読み込ませるという手もあります。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=167464 ここでやってることは 一.1つのピクチャボックス(Pic1)の中に、さらにピクチャボックス(Pic2)を作成 二.Pic2には複数個の画像を縦に並べて描画 三.Pic1は画像1つ分の大きさにする。 四.Pic2のTOP位置の調整により、複数個の画像が回転するように見える。 です。 微妙なTOP位置の調整により回転には見えますが、数値で正確にTOP位置を指定を行うと、画像の切り替えのように見せることもできます。 別方法としてリソースを使用する方法があるのですが、初耳ですよね? もし初耳であれば、説明するのに手間がかかりそうなので、これは勘弁してください。

sakky_t
質問者

お礼

pictureボックスを二つ使うとは考えもしませんでした。 いろいろなやり方があるものなんですね。 勉強になりました。 ありがとうございました。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 1.について Pictureコントロールは基本的には、拡大/縮小は出来ません。でも、表示させるだけなら、Imageコントロールでいいのではないでしょうか? 2.について 画像の読み込みは、LoadPicture関数を使わなければいけません。 例) image1.Picture = LoadPicture(読み込む画像ファイルのフルパス) また、選択対象の画像をサムネイル(縮小版)表示させ、そこから選択するのであれば、イメージリストというコントロールがあります。これは、イメージでリスト表示するコントロールです。もちろん、普通のリストボックスのようにクリックで選択して、その画像(のフルパス)を取得することも出来ます。 イメージリストは、標準のコントロールではないので、メニューの[プロジェクト]→[コンポーネント]で、"Microsoft Windows Common Controls 6.0"にチェックを入れて[OK]して下さい。するとコントロールのツールバーにいくつか追加されます。この中にイメージリストがあります。 利用方法は本などを参照して下さい。一応、私が使っている本を紹介しておきます。 では。   「新Visual Basic入門」(シニア編)       著:林晴比古    出版:SOFTBANK    2,520円

sakky_t
質問者

お礼

ありがとうございました。 loadpictureばっちりでした。 おかげで先に進めました。

関連するQ&A

専門家に質問してみよう