Newsgroup: it.comp.lang.visual-basic
Titolo: Dialog "Browse for folder": chi ne sa qualcosa?

Si tratta della dialog che consente di selezionare una unita' o una
directory in cui salvare o ricercare qualcosa (non e' la dialog "Apri"
o "Salva" file!!!). E' composta soltanto da una Tree View che permette
di accedere alle risorse del computer ed alle risorse di rete. Chi ne
sa qualcosa, ovvero:
- Si tratta di una dialog predefinita, oppure devo costruirmela io?
- Se si trattasse di una dialog predefinita, come si fa ad attivarla?
O meglio, di che controllo si tratta (non mi sembra che si tratti di
una Common Dialog...)?
- Se, invece, non si trattasse di una dialog predefinita, chi di voi
sa darmi qualche spunto circa la sua implementazione?
Un grazie infinito a chiunque abbia tempo (e voglia) di aiutarmi!
Ciao!!
Fauretto

option explicit
Global Const BIF_RETURNONLYFSDIRS = 1
Global Const BIF_DONTGOBELOWDOMAIN = 2
Global Const MAX_PATH = 260
Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal
lpBuffer As String) As Long
Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As
String, ByVal lpString2 As String) As Long
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
Function BrowseForFolder(SourceForm As Form, Testo As String) As String
    BrowseForFolder = ""
'Opens a Browse Folders Dialog Box that displays the
'directories in your computer
Dim lpIDList As Long ' Declare Varibles
Dim sBuffer As String
Dim szTitle As String
Dim tBrowseInfo As BrowseInfo
szTitle = Testo
' Text to appear in the the gray area under the title bar
' telling you what to do
With tBrowseInfo
    .hWndOwner = SourceForm.hWnd ' Owner Form
    .lpszTitle = lstrcat(szTitle, "")
    .ulFlags = BIF_RETURNONLYFSDIRS '+ BIF_DONTGOBELOWDOMAIN
End With
lpIDList = SHBrowseForFolder(tBrowseInfo)
If (lpIDList) Then
   sBuffer = Space(MAX_PATH)
   SHGetPathFromIDList lpIDList, sBuffer
   sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1)
   BrowseForFolder = sBuffer
End If
End Function
-------------
GbC

...
... CUT...
MITICO!! Grazie mille, sei un grande!!
Ciao!
Fauretto

...


Ragazzi, spreco un po' di banda giusto per ringraziarvi. Che altro
dire se non "a buon rendere"?
Mi siete stati utilissimi!
Ciao!
Fauretto

...


seguente codice:
Caspita, bellina davvero !. 
Visto che sei cosi' preparato sai come visualizzare un menu puldown da
visualizzare al volo senza utilizzare una form con menu  ???
Grazie
Antonio Tanzillo

...

CreateMenu e compagnia cantante. Non l'ho mai fatto e quindi non ho codice
pronto, ma credo che sia sul sito comune.
Saluti,
Domenico

Confido in voi....
Richiede una type library e la chiamata ad alcune funzioni, ed è tutt'altro
che intuitiva. Io ho un codice che non so se posso postare perché è di Brad
Martinez (ccrp anche lui) che me l'ha mandato per cortesia verso di me. Gli
chiedo il permesso e poi lo posto su it.binari.visual-basic (e poi magari
anche sul sito comune).
Saluti,
Domenico