Newsgroup: it.comp.lang.visual-basic
Titolo: BrowseForFolders senza "Nuova Cartella"

Ciao a tutti.
Utilizzo la funzione SHBrowseForFolders per visualizzare la finestra di
dialogo per la selezione di una cartella. E' possibile fare in modo che non
appaia il tasto "Nuova cartella"?
Grazie
Skysurfer

appaia il tasto "Nuova cartella"?
Non devi fare nulla, il pulsante appare solo se glielo dici tu ;-)
Prova a valorizzare il campo 
ulFlags = BIF_RETURNONLYFSDIRS | BIF_DONTGOBELOWDOMAIN
-- 
hth, hal

 ha scritto nel messaggio
news:1v0osu0hr1meebn5d...@4ax.com...

Ho provato ad impostare i due flag che mi hai detto ma il pulsantino è
sempre lì.
Ho visto che non appare se imposto BIF_USENEWUI a False allora il tasto non
appare, ma la finestra di selezione cambia.
Ho trovato su MSDN il flag BIF_NONEWFOLDERBUTTON ma sembra che sia
disponibile solo dalla versione 6 anche se non ho ben capito alla versione
di quale file si riferisce.
Grazie.
Ciao
Skysurfer

sempre lì.
Uhm... su che s.o. succede questo?
Prima di scrverti avevo verificato con w2k pro sp3 e ie6.
-- 
ciao, un hal che indaga

 ha scritto nel messaggio
news:lu60tucf9oj05j7om...@4ax.com...

Idem... amche io ho w2k Pro con Sp3 e ie 6.
Non è che per caso hai impostato il flag BIF_USENEWUI a 0?
Ho trovato che il flag BIF_NONEWFOLDERBUTTON dovrebbe funzionare da WinXp.
Ciao.
Skysurfer

 Ho trovato che il flag BIF_NONEWFOLDERBUTTON dovrebbe funzionare da WinXp.
Proviamo a fare un passo alla volta.
Se provi ad eseguire il seguente codice sulla macchina di prova,
il pulsante Nuovo compare o no?
<codice>
Option Explicit
Private Const BIF_RETURNONLYFSDIRS = &H1
Private Type BROWSEINFO
    hOwner As Long
    pidlRoot As Long
    pszDisplayName As String
    lpszTitle As String
    ulFlags As Long
    lpfn As Long
    lParam As Long
    iImage As Long
End Type
Private Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (ByRef lpBrowseInfo As BROWSEINFO) As Long
Public Sub Main()
    Dim bi As BROWSEINFO
    bi.ulFlags = BIF_RETURNONLYFSDIRS
    Call SHBrowseForFolder(bi)
End Sub
</codice>
--
ciao, hal
--------------------------------
Inviato via 
http://usenet.libero.it

 <codice>
[...]
No, così il tasto nuovo non compare.
Prova però ad impostare anche BIF_USENEWUI.
L'interfaccia cambia completamente ed il tasto appare. E' da questa modalità
che io vorrei farlo scomparire.
<codice>
Option Explicit
Private Const BIF_RETURNONLYFSDIRS = &H1
Public Const BIF_USENEWUI = &H40
...
...
Public Sub Main()
    Dim BI As BROWSEINFO
    BI.ulFlags = BIF_RETURNONLYFSDIRS + BIF_USENEWUI
    Call SHBrowseForFolder(BI)
End Sub
</codice>
Grazie e ciao
Skysurfer

 che io vorrei farlo scomparire.
Ah, perche' non l'hai detto subito?
BIF_USENEWUI equivale a BIF_EDITBOX | BIF_NEWDIALOGSTYLE.
Se leggiamo la documentazione di quest'ultimo flag, troviamo
che prevede la creazione di nuove directory direttamente dal
dialog:
BIF_NEWDIALOGSTYLE
Version 5.0. Use the new user interface.
Setting this flag provides the user with a larger dialog box that can be
resized.
The dialog box has several new capabilities including:
drag and drop capability within the dialog box, reordering, shortcut menus,
-----> new folders <-------
, delete, and other shortcut menu commands.
To use this flag, you must call OleInitialize or CoInitialize
before calling SHBrowseForFolder.
Morale: ti tocca rinunciare a BIF_USENEWUI, a meno che,
ma non sono sicuro perche' non l'ho mai fatto,
non scrivi una funzione callback (l'indirizzo va messo in lpfn)
che nasconda il pulsante.



Beh... ma era dal secondo post che lo dicevo!! :)
Grazie comunque.
Ciao
Skysurfer