PDA

Visualizza la versione completa : [VB] SHBrowseForFolder


rambco
25-03-2002, 11:14
Come faccio a far comparire il pulsante nuova cartella quando apro la scelta della directory ?

Wild78
25-03-2002, 11:54
Forse con le API fai qualcosa, ma non so dirti di pių, al momento...

SORRY! :quipy:

rambco
25-03-2002, 12:01
:( nessuno sa qualche cosa ?

biste
25-03-2002, 12:36
Prova questo....



Private Type BrowseInfo
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
Const BIF_RETURNONLYFSDIRS = 1
Const BIF_USENEWUI = &H40
Const MAX_PATH = 260
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
Private Sub Form_Load()
Dim iNull As Integer, lpIDList As Long, lResult As Long
Dim sPath As String, udtBI As BrowseInfo
With udtBI
.hWndOwner = Me.hWnd
.lpszTitle = lstrcat("C:\", "")
.ulFlags = BIF_USENEWUI + BIF_RETURNONLYFSDIRS
End With
lpIDList = SHBrowseForFolder(udtBI)
If lpIDList Then
sPath = String$(MAX_PATH, 0)
SHGetPathFromIDList lpIDList, sPath
CoTaskMemFree lpIDList
iNull = InStr(sPath, vbNullChar)
If iNull Then
sPath = Left$(sPath, iNull - 1)
End If
End If
End Sub

rambco
25-03-2002, 16:37
funzia tnx !

biste
25-03-2002, 16:39
nad@ prg
:tongue:

Bisco
29-01-2003, 10:42
Sapete per caso come si fa ad impostare la directory iniziale?

Bisco
31-01-2003, 12:44
up

l.golinelli
31-01-2003, 12:53
LO SAPEVATE CHE C'E' UN FORMU APPOSTA PER VISUAL BASIC... :eek:

biste
31-01-2003, 13:34
lo sai ke questo thread č iniziato il 25-03-2002?
Non esisteva ancora il sottoforum di vb :eek:

Loading