Astuces de recherche...
Home
- Accueil & nouveautés
- Les newsgroups VB
- Téléchargements
- L'équipe
- Nous contacter
- Liens
Rubriques
- Toutes les questions
- Affichage & graphismes
- Algorithmique
- API
- Base de registre
- Bases de données
- Contrôles
- Date & heure
- Déploiement
- Divers
- Erreurs & problèmes
- Fichiers & dossiers
- Généralités
- Impression
- Internet & mails
- Math
- Multimédia
- Réseaux
- Structures de données
- Texte & strings
- VB .Net
- VB Script
- VBA
- Windows

Question 90

Comment afficher la boîte de dialogue "OpenFile" en utilisant les API ?

Le fonction suivante affiche la boîte de dialogue "OpenFile" et retourne le chemin complet du fichier choisi :

' Déclaration de l'API
Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

' GetOpenFileName flags
Public Enum OFN_Constants
    OFN_ALLOWMULTISELECT = &H200
    OFN_CREATEPROMPT = &H2000
    OFN_DONTADDTORECENT = &H2000000
    OFN_ENABLEHOOK = &H20
    OFN_ENABLEINCLUDENOTIFY = &H400000
    OFN_ENABLESIZING = &H800000
    OFN_ENABLETEMPLATE = &H40
    OFN_ENABLETEMPLATEHANDLE = &H80
    OFN_EX_NOPLACESBAR = &H1
    OFN_EXPLORER = &H80000
    OFN_EXTENSIONDIFFERENT = &H400
    OFN_FILEMUSTEXIST = &H1000
    OFN_FORCESHOWHIDDEN = &H10000000
    OFN_HIDEREADONLY = &H4
    OFN_LONGNAMES = &H200000
    OFN_NOCHANGEDIR = &H8
    OFN_NODEREFERENCELINKS = &H100000
    OFN_NOLONGNAMES = &H40000
    OFN_NONETWORKBUTTON = &H20000
    OFN_NOREADONLYRETURN = &H8000
    OFN_NOTESTFILECREATE = &H10000
    OFN_NOVALIDATE = &H100
    OFN_OVERWRITEPROMPT = &H2
    OFN_PATHMUSTEXIST = &H800
    OFN_READONLY = &H1
    OFN_SHAREAWARE = &H4000
    OFN_SHAREFALLTHROUGH = 2
    OFN_SHARENOWARN = 1
    OFN_SHAREWARN = 0
    OFN_SHOWHELP = &H10
    OFN_USEMONIKERS = &H1000000
End Enum

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

'---------------------------------------------------------------------------------------
' Sub :         OpenFileDialog
' DateTime :    03/09/2002 15:19
' Auteur :      Pierre Alexis
' But :         Cette procédure affiche la boîte de dialogue "OpenFile" et retourne
'               le chemin du fichier choisi
'---------------------------------------------------------------------------------------
Public Function OpenFileDialog(Optional DialogTitle As String, Optional sFilter As String, Optional Flags As OFN_Constants, Optional InitialDir As String, Optional hwndOwner As Long, Optional hInstance As Long) As String

    Dim OFName As OPENFILENAME

    With OFName
        .lStructSize = Len(OFName)
        .hwndOwner = hwndOwner
        .hInstance = hInstance
        .lpstrFilter = sFilter
        .lpstrFile = Space$(254)
        .nMaxFile = 255
        .lpstrFileTitle = Space$(254)
        .nMaxFileTitle = 255
        .lpstrInitialDir = InitialDir
        .lpstrTitle = DialogTitle
        .Flags = Flags
    End With

    If GetOpenFileName(OFName) Then
        OpenFileDialog = Trim$(OFName.lpstrFile)
    End If

End Function

Private Sub Form_Load()

    MsgBox OpenFileDialog("Choississez un fichier...", "Sons wav (*.wav)" + Chr$(0) + "*.wav" & Chr$(0), OFN_HIDEREADONLY, CurDir, Me.hWnd, App.hInstance)

End Sub

La documentation complète sur l'API GetOpenFileName se trouve sur la MSDN.

Date de publication : 16 septembre 2002
Dernière modification : 16 septembre 2002
Rubriques : Windows
Mots-clés : boîte de dialogue commune, common dialog box, ouvrir, OpenFile, GetOpenFileName, choisir