VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

リンク元へ戻ります。 描画・画像関係のメニュー
1.Imageコントロールで画像を拡大・縮小・移動表示・印刷する
2.PictureBox コントロールで画像を拡大・縮小表示する
3.網掛け文字を表示及び印字
4.ピクチャーボックス上に円グラフを描画する
5.AVI(アニメーション)ファイルを表示する
6.ピクチャーボックスに表示・描画した画像・文字の保存及び消去方法
7.フォームの背景にグラデーションを描く(VBの標準の機能で)
8.上下左右の鏡像を得る(VBの標準の機能で)
9.ピクチャーを90度毎に回転させて表示(VBの機能で)
10.表示位置・印字位置(文字列)を揃える
11.画像ファイルをスクロール表示しながら連続読み込み
12.メモリDCを使っての画像表示(拡大・縮小・鏡像・180度回転)
13.図形の内部を塗りつぶす
14.
15.
16.
17.
18.
19.
20.その他、当サイト内に掲載の描画・画像に関するサンプル


11.画像ファイルをスクロール表示しながら連続読み込み
1.画像ファイルをスクロール表示しながら連続読み込み
2.
3.
4.
5. 
6. 

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6)
Option :[Option Explicit]
参照設定:追加なし
使用 API:
なし
その他 :
    :
このページのトップへ移動します。 1.画像ファイルをスクロール表示しながら連続読み込み
使用コントロールは、PictureBox 3個 FileListBox / VScrollBar 各1個を適当な位置に貼り付けておいて下さい。

Option Explicit   'SampleNo=160 WindowsXP VB6.0(SP5) 2002.07.03

Private Zoom  As Single
Private MyPath As String

Private Sub Form_Load()
  Me.WindowState = 2
  Picture2.Move 0, 0, 18000, 9500
  Picture3.Move 0, 0
  Picture1.Move 200, 270, 14700, 9500
  '画像が保存されているフォルダーを指定して下さい。
  MyPath = "C:\MyBitMap\"
  filFile.Visible = False
  filFile.Path = MyPath
  filFile.Pattern = "*.bmp;*.jpg;*.gif"

  Picture1.Cls
  Picture2.Cls
  Picture3.Cls
  Me.Show
  Call PictureShow
End Sub

Private Sub PictureShow()
  Dim Ritu  As Single
  Dim X    As Long
  Dim Y    As Long
  Dim I    As Long
  Dim LineHei As Long
  Dim Pic3Wid As Long
  Dim Pic3Hei As Long
  Dim MaxSize As Long
  Picture2.Move 0, 0, 18000, 9500
  Ritu = Zoom             '縮小率の設定
  On Error Resume Next        'ファイルの読み込みエラー等が発生するので
  Me.MousePointer = vbHourglass    '読み込み中の表示
  For I = 0 To filFile.ListCount - 1
    Set Picture3.Picture = LoadPicture(MyPath & filFile.List(I))
    If Err Then
      Err.Clear
      MsgBox "ファイルの読み込みでエラーが発生しました" & MyPath & filFile.List(I)
      Exit For
    End If
    Pic3Wid = Picture3.Width
    Pic3Hei = Picture3.Height
    MaxSize = Pic3Wid
    If Pic3Wid < Pic3Hei Then
      MaxSize = Pic3Hei
    End If
    'この辺の縮小表示は、お好みで設定して下さい。
    Select Case MaxSize
      Case Is < 2000
        Ritu = 1
      Case Is < 4000
        Ritu = 0.8
      Case Is < 6000
        Ritu = 0.6
      Case Is < 8000
        Ritu = 0.4
      Case Is < 10000
        Ritu = 0.3
      Case Is < 15000
        Ritu = 0.15
      Case Is > 50000
        Ritu = 0.05
      Case Else
        Ritu = 0.1
    End Select

    '横方向の折り返し処理
    If X > 14700 - (Pic3Wid * Ritu) Then
      X = 0
      Y = Y + LineHei + 20
      LineHei = 0
      If Y >= 7500 Then
        Picture2.Top = 7500 - Y   'スクロールしながら読み込み
        Picture2.Refresh
      End If
    End If
    If LineHei < (Pic3Hei * Ritu) Then
      LineHei = Pic3Hei * Ritu
    End If
    If Y > 100000 Then
      MsgBox "データが多すぎます。縮小して表示して下さい。"
      Exit For
    End If
    If Picture2.Height < LineHei + Y + 1000 Then
      Picture2.Height = LineHei + Y + 1000
    End If
    Picture2.PaintPicture Picture3.Picture, X, Y, Pic3Wid * Ritu, _
                  Pic3Hei * Ritu, 0, 0, Pic3Wid, Pic3Hei
    X = X + (Pic3Wid * Ritu) + 30
    Picture2.Refresh
  Next I
  Me.MousePointer = vbDefault
  Picture2.Move 0, 0
  Call ScrollBarShow
End Sub


Private Sub VScroll1_Change()
  Picture2.Top = -((Picture2.Height - 10000) * (VScroll1.Value / 100))
End Sub

Private Sub ScrollBarShow()
  Dim Pic1H As Long
  Dim Pic1W As Long
  Dim Pic1L As Long
  Dim Pic1T As Long
  Dim Pic2H As Long
  Dim Pic2W As Long
  With Picture1
    Pic1H = .Height
    Pic1W = .Width
    Pic1L = .Left
    Pic1T = .Top
  End With
  With Picture2
    Pic2H = .Height
    Pic2W = .Width
  End With
  With VScroll1
    .Top = Pic1T
    .Left = Pic1L + Pic1W
    .Height = Pic1H
    .Max = 100
    .Visible = (Pic1H < Pic2H)
  End With
End Sub

  図1.上記実行結果
 drawing11_01

このページのトップへ移動します。 2.


このページのトップへ移動します。 3.


このページのトップへ移動します。 4.


このページのトップへ移動します。 5.


このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)
指定のフォルダー内の画像を読込PictureBoxに縮小画像を並べて表示
縮小画像をPictureBoxに並べて表示



このページのトップへ移動します。