ファイルシステムコントロール
                                                           玄関へお回り下さい。   
ファイルシステムコントロール(ドライブ・リスト・他)の連動    (095)
    

Option Explicit   'SampleNo=095 WindowsXP VB6.0(SP5) 2002.05.18

Private Sub
Form_Load()
  '読込ファイルの拡張子の制限(使用目的で変更して下さい)
  cboCombo.AddItem "*.bmp;*.dib;*.jpg;*.gif;*.wmf;*.ico;*.cur;*.emf"
  cboCombo.AddItem "*.txt"
  cboCombo.AddItem "*.*"
  cboCombo.Text = "*.*"
  'カレントフォルダーとドライブを指定
  dirDir.Path = App.Path  '"c:\"
  drvDrive.Drive = App.Path
End Sub


Private Sub
mnuSentaku_Click()
'メニューの選択
  fraFrame.Visible = True
End Sub


Private Sub Command1_Click()
'選択ボタン
  'MyFileName = txtFilePath.Text
  fraFrame.Visible = False
End Sub


Private Sub Command2_Click()
'閉じるボタン
  fraFrame.Visible = False
End Sub


Private Sub
drvDrive_Change()
  On Error GoTo errhandle    'エラーが発生したら処理ルーチンへ
  'ディレクトリリストボックスに選択したドライブを
  dirDir.Path = drvDrive.Drive
  Exit Sub

errhandle:
  '元のドライブを指定
  drvDrive.Drive = dirDir.Path
  'エラーが発生した次のステートメントへ移動
  Resume Next
End Sub


Private Sub dirDir_KeyPress(KeyAscii As Integer)
  'Enterキーでの操作を可能に
  If KeyAscii = vbKeyReturn Then
    dirDir.Path = dirDir.List(dirDir.ListIndex)
  End If
End Sub


Private Sub dirDir_Change()
  '選択したディレクトリをファイルリストボックスへ
  filFile.Path = dirDir.Path
  'コンボボックスで指定された拡張子のファイルだけ抽出
  filFile.Pattern = cboCombo.Text
End Sub


Private Sub filFile_Click()
  Dim wpath As String
  Dim filename As String
  '現在のパスを取得
  wpath = dirDir.Path
  'ルートディレクトリ以外は¥を付加する
  If Right$(wpath, 1) <> "\" Then wpath = wpath & "\"
  '選択されたファイル名をフルパスで取得
  filename = wpath & filFile.filename
  'テキストボックスに表示
  txtFilePath.Text = filename
End Sub


Private Sub cboCombo_Change()
  'コンボボックスに変更があったら
  dirDir_Change
End Sub


Private Sub cboCombo_Click()
  'ディレクトリリストボックスのチェンジイベントを発生
  dirDir_Change
End Sub


Private Sub txtFilePath_Change()
'画像ファイルを選択した場合サムネイル画像を表示
'表示しないのであればこの部分は削除して下さい。
  On Error Resume Next
  'サポートしている画像ファイルかを調査
  If InStr(1, "bmp dib gif jpg wmf emf ico cur", _
              Right$(txtFilePath.Text, 3), 1) = 0 Then
    '画像ファイルでない場合表示しない
    Image1.Picture = LoadPicture()
    Exit Sub
  End If
  With Image1
    'イメージのサイズにコントロールを変更
    .Stretch = False
    .Visible = False
    'イメージファイルの読込
    .Picture = LoadPicture(txtFilePath.Text)
    '縦横比を変えずに縮小表示
    If .Height >= .Width And .Height > 1210 Then
      .Width = .Width * 1210 \ .Height
      .Height = 1210
    ElseIf .Width >= .Height And .Width > 1210 Then
      .Height = .Height * 1210 \ .Width
      .Width = 1210
    End If
    .Stretch = True
    .Visible = True
  End With
End Sub


Private Sub mnuEnd_Click()
  Unload Me
End Sub
     実行図

      

このようにフレーム上にパーツ化しておくと、必要な時に簡単に移植でき便利ですよ。
フォームに上記のように各コントロールを貼り付けて上記のコードをペーストして頂くと動作
します。
サポートされている画像ファイルを選択すると縮小表示します。不要な場合は削除して下さい




2002/05/18