Utilisation de l'API "Openfile" sous VB

Fermé
TheNox Messages postés 59 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 17 juin 2005 - 8 avril 2004 à 19:55
 Jereck - 23 oct. 2004 à 01:27
Salut,

Question Visual basic :

S'il vous plait, pour ceux qui aurrai une réponse :
Comment faire pour utiliser la boite de dialogue "SaveFile" de windows sous vb.

J'ai réussi à me procurrer un code pour la boite de dialogue "OpenFile" de windows mais par contre j'ai pas pu avoir l'autre.

Code pour "OpenFile" de windows à ceuw que ca intersserait au passage :
-------------------------------------------------------------------------
' 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
---------------------------------------------------------------------------

<TheNox> :-)
A voir également:

2 réponses

Bonjour,

J'utilise également la methode Getopenfilename, cependant je voudrais sélectionner plusieurs fichiers avant de valider mais je n'y arrive pas. Aurais-tu une solution
Merci
0
C'est exactement la même chose, sauf qu'il faut déclarer :

Private Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long
0