USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Ajudem com API do Dialogo "Selecionar Pasta"
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
Postada em 15/07/2004 03:04 hs            
Olá, galera
 
Peguei em um site de programação (nao lembro se aqui) o codigo a seguir:
 
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Public Type SHITEMID
    cb As Long
    abID As Byte
End Type
Public Type ITEMIDLIST
    mkid As SHITEMID
End Type
Public 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

 
Public Function GetFolder(Titulo As String, Optional Hwnd As Long) As String
    Dim bi As BROWSEINFO, IDL As ITEMIDLIST
    Dim pidl As Long, r As Long, pos As Integer
    Dim sPath As String
   
    bi.hOwner = Hwnd
    bi.pidlRoot = 0&
    bi.lpszTitle = Titulo
    bi.ulFlags = 0 'BIF_RETURNONLYFSDIRS
   
    pidl& = SHBrowseForFolder(bi)
    sPath = Space(512)
   
    r = SHGetPathFromIDList(ByVal pidl, ByVal sPath)
    If r Then
        pos = InStr(sPath, Chr(0))
        GetFolder = Left(sPath, pos - 1)
    Else
        GetFolder = ""
    End If
End Function

 
Essa API abre a caixa de dialogo "Selecionar Pasta", mas obriga a selecionar uma pasta já existente. Alguém sabe o que eu tenho que mudar para exibir o botão "Nova Pasta" nessa caixa de dialogo, como aparece em vários aplicativos for Windows???
 
Por favor alguém me ajude...
 
Elieser Carlos Topassi
São José do Rio Preto, SP
TÓPICO EDITADO
   
Ismael_CPD
SAO PAULO
SP - BRASIL
Postada em 15/07/2004 08:33 hs            
Tem que ser por esta API a CommomDialog do VB não serve pra vc não ?
 
     
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
Postada em 17/07/2004 00:47 hs            
Eu prefiriria que fosse essa. A interface da commonDialog não me interessa mesmo, gostaria de usar essa, se é que alguem sabe como fazer.. já tentei mudar o valor da flag, mas não resolveu...
     
defende
não registrado
Postada em 17/07/2004 09:04 hs   
Elieser, dah uma olhada nesse link:
Veja se te ajuda em alguma coisa
     
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
Postada em 17/07/2004 15:00 hs            
Valeu, defende
 
Achei algo parecido com o que procuro... vou fazer alguns testes. Se funcionar abro o post novamente e posto a solução correta, caso alguem mais precise disso...
 
Elieser Topassi
     
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
Postada em 17/07/2004 15:37 hs            
Encontrei e não encontrei...
 
Achei no site da msdn uma materia sobre a função SHBrowserForFolder, e encontrei todos os valores possiveis para ulFlags, mas ai esta o problema:
 
Existe a flag BIF_NONEWFOLDERBOTTOM, que evita exibir o botao "Nova Pasta", mas não existe nenhuma flag para exibir. E em meu projeto, o botão já nao é exibido sem flag alguma.
 
Estou um pouco perdido...
 
Se alguem já usou essa API, me ajuda por favor...
     
Página(s): 1/2      PRÓXIMA »

CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página