● 指定したファイルを追加する ●

これのコンボボックス版。

'コンボボックス
Declare Function DlgDirListComboBox Lib "user32" Alias "DlgDirListComboBoxA" (ByVal hDlg As Long, ByVal lpPathSpec As String, ByVal nIDComboBox As Long, ByVal nIDStaticPath As Long, ByVal wFileType As Long) As Long

'コントロール識別子取得
Private Declare Function GetDlgCtrlID Lib "user32" (ByVal hWnd As Long) As Long

Private Const DDL_ARCHIVE = &H20     'アーカイブファイル
Private Const DDL_DIRECTORY = &H10   'サブディレクトリ
Private Const DDL_DRIVES = &H4000    'ドライブ
Private Const DDL_EXCLUSIVE = &H8000 '指定された属性を持つファイル。デフォルトは、読み書き専用
Private Const DDL_HIDDEN = &H2       '隠しファイル
Private Const DDL_READONLY = &H1     '読取専用ファイル
Private Const DDL_READWRITE = &H0    '他の属性を持たない、読み書き可能なファイル
Private Const DDL_SYSTEM = &H4       'システムファイル
Private Const DDL_POSTMSGS = &H2000  'ポストメッセージをアプリケーションキューに送る

'---------------------------------------------------------------------------
' 関数名: AddTargetFile
' 機能 : リストボックスに検索したファイルを追加する
' 引数 : (in)hParent  … 呼び出しウィンドウのハンドル
'         (in)hCombo … コンボボックスのハンドル
'         (in)Target … 検索対象ファイル
' 返り値: 1…正常終了   0…異常終了
'---------------------------------------------------------------------------
Public Function AddTargetFile(ByVal hParent As Long, ByVal hCombo As Long, _
                              ByVal Target As String) As Long

    'ファイルとディレクトリを取得
    AddTargetFile = DlgDirListComboBox(hParent, Target, GetDlgCtrlID(hCombo), 0&, _
                              DDL_READWRITE Or DDL_DIRECTORY)

End Function

呼び出し側。

Private Sub Form_Load()

    Call AddTargetFile(Me.hWnd, Combo1.hWnd, Environ("WINDIR") & "\*.txt")

End Sub

戻る