Results 1 to 3 of 3
  1. #1
    Join Date
    Oct 2012

    Unanswered: File open dialog with multiple file/extension filter

    Anyone know how set multiple file/extension file in open file dialog ? ex. Image file (*.jpg, *.gif, *.png)
    i'm using these code for opn file diaglog :
    Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
    "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
    Private Type OPENFILENAME
        lStructSize As Long
        hwndOwner As Long
        hInstance As Long
        lpstrFilter As String
        lpstrCustomFilter As String
        nMaxCustFilter As Long
        nFilterIndex As Long
        lpstrFile As String
        nMaxFile As Long
        lpstrFileTitle As String
        nMaxFileTitle As Long
        lpstrInitialDir As String
        lpstrTitle As String
        flags As Long
        nFileOffset As Integer
        nFileExtension As Integer
        lpstrDefExt As String
        lCustData As Long
        lpfnHook As Long
        lpTemplateName As String
    End Type
    Function LaunchCD(strform As Form) As String
        Dim OpenFile As OPENFILENAME
        Dim lReturn As Long
        Dim sFilter As String
        OpenFile.lStructSize = Len(OpenFile)
        OpenFile.hwndOwner = strform.Hwnd
        sFilter = "JPEG Files (*.JPG)" & Chr(0) & "*.JPG" & Chr(0) & _
          "PNG Files (*.PNG)" & Chr(0) & "*.PNG" & Chr(0)
        OpenFile.lpstrFilter = sFilter
        OpenFile.nFilterIndex = 1
        OpenFile.lpstrFile = String(257, 0)
        OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
        OpenFile.lpstrFileTitle = OpenFile.lpstrFile
        OpenFile.nMaxFileTitle = OpenFile.nMaxFile
        OpenFile.lpstrInitialDir = "C:\"
        OpenFile.lpstrTitle = "Select a file using the Common Dialog DLL"
        OpenFile.flags = 0
        lReturn = GetOpenFileName(OpenFile)
            If lReturn = 0 Then
                MsgBox "A file was not selected!", vbInformation, _
                  "Select a file using the Common Dialog DLL"
                LaunchCD = Trim(Left(OpenFile.lpstrFile, InStr(1, OpenFile.lpstrFile, vbNullChar) - 1))
             End If
    End Function
    and i know how to set filter for single extension only :
    sFilter = "JPEG Files (*.JPG)" & Chr(0) & "*.JPG" & Chr(0) & _
          "PNG Files (*.PNG)" & Chr(0) & "*.PNG" & Chr(0)
    i've no idea how write the syntax for multiple filter

    Sorry for my english.


  2. #2
    Join Date
    Mar 2009
    Provided Answers: 15
    It should be something like:
    strFilter = "MS Excel (*.Xls)" & Chr$(0) & "*.Xls" & Chr$(0) & "All files" & Chr$(0) & "*.*" & Chr$(0)
    Have a nice day!

  3. #3
    Join Date
    Oct 2012
    Thanks for the reply sinddho

    But that's not i'm looking for.

    what i mean is how to add multiple extension in one syntax only like :

    Image Files (*.JPG,*PNG,*.GIF) in one selection


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts