~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période. Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes.
~ Rechercher ~
~ Annuaire VB ~
~ Partenaires ~
|
Fonction GetOpenFileName
Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" ( _ pOpenfilename As OPENFILENAME) As Long
Versions : . Windows 95/98 : Oui . Windows NT : A partir de 3.1 . Windows 2000/XP : OuiDescription : Affiche une boîte de dialogue 'Ouvrir...'.
pOpenfilename est une structure donnant les caractéristiques de la boîte de dialogue.
lStructSize doit contenir la taille de la structure.
hwndOwner est le handle de la fenêtre mère de la boîte de dialogue.
hInstance est l'instance de l'application courante.
lpstrFilter
nFilterIndex est l'index du filtre à utiliser par défaut.
lpstrFile est le nom du fichier affiché à l'ouverture de la fenêtre.
nMaxFile est la longueur du buffer précédent.
lpstrFileTitle contient le nom et extension du fichier sans le chemin.
nMaxFileTitle est la longueur du buffer précédent.
lpstrInitialDir est le répertoire initial de la boîte de dialogue.
lpstrTitle est le titre de la fenêtre.
flags est un ensemble de constantes désignant les caractéristiques de la fenêtre (voir le tableau de constantes plus bas).
lpstrDefExt est l'extension ajoutée par défaut automatiquement si l'utilisateur l'oublie.
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
Constante | Valeur |
Définition |
OFN_ALLOWMULTISELECT | &H200 |
Autoriser la sélection multiple de fichiers. |
OFN_CREATEPROMPT | &H2000 |
Afficher une fenêtre de confirmation de création de fichier. |
OFN_EXPLORER | &H80000 |
Donne un style 'Explorer' à la boîte de dialogue (par défaut). |
OFN_EXTENSIONDIFFERENT | &H400 |
Indique que l'utilisateur a choisi une extension différente de celle par défaut. |
OFN_FILEMUSTEXIST | &H1000 |
Seuls des fichiers existants peuvent être saisis. |
OFN_HIDEREADONLY | &H4 |
Case à cocher 'Lecture seule' invisible. |
OFN_LONGNAMES | &H200000 |
Gestion des noms longs pour les boîtes de dialogue n'ayant pas le style 'Explorer'. |
OFN_NOCHANGEDIR | &H8 |
Conserve le répertoire d'origine à la fermeture de la fenêtre. |
OFN_NODEREFERENCELINKS | &H100000 |
La boîte de dialogue prendra le nom et le chemin du raccourci sélectionné. |
OFN_NOLONGNAMES | &H40000 |
Utilise les noms courts de fichier (sans effet dans le cas des fenêtres du type 'Explorer'). |
OFN_NONETWORKBUTTON | &H20000 |
Cache (désactive) le bouton 'Réseau'. |
OFN_NOREADONLYRETURN | &H8000 |
Ne sélectionne pas la case à cocher 'Lecture seule'. |
OFN_NOTESTFILECREATE | &H10000 |
Le fichier ne sera pas créé avant la fermeture de la fenêtre. |
OFN_NOVALIDATE | &H100 |
Ne vérifie pas la validité de la saisie (validité du nom de fichier). |
OFN_OVERWRITEPROMPT | &H2 |
Afficher un message de confirmation d'écrasement de fichier si celui-ci existe déjà. |
OFN_PATHMUSTEXIST | &H800 |
Les chemins et fichiers saisis doivent exister. |
OFN_READONLY | &H1 |
La case 'Lecture seule' est cochée à la création de la fenêtre. |
OFN_SHAREAWARE | &H4000 |
Ignorer les erreurs de partage réseau. |
OFN_SHOWHELP | &H10 |
Afficher le bouton 'Aide' dans la boîte de dialogue. |
Exemple d'utilisation :
' Déclaration de fonctions API
Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" ( _
pOpenfilename As OPENFILENAME) As Long
' Déclaration de type
Public 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
' Déclaration de constantes
Public Enum esFlags
OFN_ALLOWMULTISELECT = &H200
OFN_CREATEPROMPT = &H2000
OFN_ENABLEHOOK = &H20
OFN_ENABLETEMPLATE = &H40
OFN_ENABLETEMPLATEHANDLE = &H80
OFN_EXPLORER = &H80000
OFN_EXTENSIONDIFFERENT = &H400
OFN_FILEMUSTEXIST = &H1000
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_SHOWHELP = &H10
End Enum
Public Function FichierOuvrir(lgHwnd As Long, stFiltre As String, lgIdxFiltre As Long, _
Optional lgFlags As esFlags = OFN_EXPLORER + OFN_LONGNAMES + OFN_PATHMUSTEXIST, _
Optional stTitre As String = vbNullString, _
Optional stInitFile As String = vbNullString, _
Optional stInitDir As String = vbNullString, _
Optional stDefautExt As String = vbNullString) As String
' Fenêtre "Enregistrer un fichier".
Dim tyDialog As OPENFILENAME
Dim lgRep As Long
tyDialog.lStructSize = Len(tyDialog)
tyDialog.hWndOwner = lgHwnd ' Handle du propriétraire de la fenêtre.
tyDialog.hInstance = App.hInstance
tyDialog.lpstrFilter = Replace(stFiltre, "|", vbNullChar) & vbNullChar & vbNullChar
tyDialog.lpstrCustomFilter = vbNullString ' Filtre personnalisé (non géré).
tyDialog.nMaxCustFilter = 0 ' Index de filtre personnalisé (non géré).
tyDialog.nFilterIndex = lgIdxFiltre ' Index du filtre à utiliser par défaut.
' Nom de fichier affiché à l'initialisation de la fenêtre.
tyDialog.lpstrFile = Left$(stInitFile & String$(1024, vbNullChar), 1024)
tyDialog.nMaxFile = Len(tyDialog.lpstrFile) - 1 ' Longueur du nom de fichier.
tyDialog.lpstrFileTitle = tyDialog.lpstrFile ' Nom et extension du fichier (sans chemin).
tyDialog.nMaxFileTitle = tyDialog.nMaxFile ' Taille de la chaîne précédente.
tyDialog.lpstrInitialDir = stInitDir ' Répertoire initial.
tyDialog.lpstrTitle = stTitre ' Titre de la fenêtre.
tyDialog.flags = lgFlags ' Flags pour affichage de la fenêtre.
'tyDialog.nFileOffset ' Position du nom du fichier dans la chaîne.
'tyDialog.nFileExtension ' Position de l'extension du fichier dans la chaîne.
' Extension par défaut ajoutée automatiquement si l'utilisateur l'oublie.
tyDialog.lpstrDefExt = stDefautExt
tyDialog.lCustData = 0
tyDialog.lpfnHook = 0
tyDialog.lpTemplateName = 0
' Affichage de la boîte de dialogue.
lgRep = GetOpenFileName(tyDialog)
' Retourne le nom long du fichier.
lgLastIdxFilter = tyDialog.nFilterIndex
FichierOuvrir = Left$(tyDialog.lpstrFile, InStr(1, tyDialog.lpstrFile, vbNullChar) - 1)
End Function
Retour à la liste des API |