Imageコントロールで画像を表示する |
Imageコントロールを使って画像を拡大・縮小・移動表示する (030) | |
1.表示できる画像の種類 bmp・dib・gif・jpg・wmf・emf・ico・curの拡張子のファイル 2.Picture プロパティについて 機能 表示するイメージをPictureプロパティに設定する 構文 object.Picture [= picture] とヘルプに書いているので Image1.Picture="c:\gazou.bmp" と書くとエラーになります 正しくは Set Image1.Picture=LoadPicture("gazou.bmp")とLoadPicture関数を 使います 又イメージファイル名は、フルパスで記入されることをお奨めします。 尚、イメージデータはデザイン時にも指定することができますがその場合コンパイル等したプログラム内にデータが含まれます。 画像データを別に添付しなくても、表示されますが、プログラムサイズは、その分大きくなります。逆にプログラム内で読込んだ場合プログラムと画像を配布しないと表示できません。 3.Stretch プロパティについて 機能 True ならイメージのサイズがImageコントロールの大きさに合うように 拡大・縮小される False ならイメージのサイズにImageコントロールの大きさが合うように 拡大・縮小される 4.イメージの拡大・縮小の仕方 1 StretchプロパティをFalseで画像を読込み表示する 2 元の画像の幅・高さを変数に代入しておく 3 拡大・縮小の命令によりImageコントロールの寸法を変える 変数の宣言 Dim lngImageHeight As Long Dim lngImageWidth As Long Dim lngX As Long Dim lngY As Long Private Sub Command3_Click() '画像の読込 If lngImageHeight = 0 Then '初めてクリックした時 lngImageHeight = Image1.Height '変数に元の画像サイズを記録する lngImageWidth = Image1.Width End If Image1.Stretch = True Image1.Height = lngImageHeight Image1.Width = lngImageWidth Set Image1.Picture = LoadPicture("C:\VBRescue\030\image.jpg") End Sub 5.イメージの拡大・縮小表示の使用例 Private Sub Command1_Click() '拡大のMAXの設定 If lngImageHeight * 2 <= Image1.Height Then Exit Sub 'イメージのサイズが変更できるように Image1.Stretch = True 'クリックの都度10%づつ拡大する Image1.Height = Image1.Height * 1.1 Image1.Width = Image1.Width * 1.1 End Sub Private Sub Command2_Click() '縮小のMAXの設定 If lngImageHeight * 0.3 >= Image1.Height Then Exit Sub 'イメージのサイズが変更できるように Image1.Stretch = True 'クリックの都度10%づつ縮小する Image1.Height = Image1.Height * 0.9 Image1.Width = Image1.Width * 0.9 End Sub 6.イメージの表示位置を変える 1 指定した位置に再表示する場合 Private Sub Command4_Click() Image1.Move 50, 50 End Sub 2 マウスのドラッグ・アンド・ドロップによる位置指定の場合 Private Sub Image1_MouseDown(Button As Integer, Shift _ As Integer, x As Single, y As Single) lngX = x '現在の表示位置を取得 lngY = y Image1.Drag vbBeginDrag 'コントロールのドラッグを開始します End Sub Private Sub Image1_DragDrop(Source As Control, x As Single, y As Single) 'ドロップ位置に表示 Source.Move (Image1.Left + x - lngX), (Image1.Top + y - lngY) End Sub Private Sub Form_DragDrop(Source As Control, x As Single, y As Single) 'ドロップ位置がフォーム上の場合 Source.Move x - lngX, y - lngY End Sub 3.上下左右に移動する場合 Private Sub Command6_Click()
'クリックする度に500Twip 上に移動 Image1.Move (Image1.Left), (Image1.Top - 500) End Sub Private Sub Command7_Click() 'クリックする度に500Twip 下に移動 Image1.Move (Image1.Left), (Image1.Top + 500) End Sub Private Sub Command8_Click() 'クリックする度に500Twip 左に移動 Image1.Move (Image1.Left - 500), (Image1.Top) End Sub Private Sub Command9_Click() 'クリックする度に500Twip 右に移動 Image1.Move (Image1.Left + 500), (Image1.Top) End Sub |
02/01/01