IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Sélectionner un répertoire perso avec SHBrowseForFolder


Sujet :

Windows

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 18
    Points : 17
    Points
    17
    Par défaut Sélectionner un répertoire perso avec SHBrowseForFolder
    Bonjour à tous,

    je souhaite afficher une boite de sélection de répertoire. J'utilise pour cela la fonction SHBrowseForFolder mais j'aimerais qu'à l'affichage, un répertoire particulier soit sélectionné. J'ai trouvé une méthode mais celle-ci ne fonctionne pas. Pourriez-vous m'aider SVP?

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    int __stdcall BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
    {  // Permet de centrer la boite à l'ecran
    TRect rect;
    GetWindowRect(hwnd, &rect);
    MoveWindow(hwnd,
       FPrincipal->ClientOrigin.x+FPrincipal->ClientWidth/2-rect.Width()/2,
       FPrincipal->ClientOrigin.y+FPrincipal->ClientHeight/2 - rect.Height()/2,
       rect.Width(),
       rect.Height(),
       true);
    switch (uMsg)
            {
    	case BFFM_INITIALIZED:
    	        {
                         SendMessage(hwnd, BFFM_SETSELECTION, TRUE, lpData);
    	         }
    	}
    return 0;
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TFPrincipal::SaveDBClick(TObject *Sender)
    {
    char Path[MAX_PATH];
    char BufferDisplayName[MAX_PATH];
    
    PItemIDList IDRoot;
    SHGetSpecialFolderLocation(Handle, CSIDL_DRIVES, &IDRoot);
    
    TBrowseInfo BrowseInfo;
    ZeroMemory(&BrowseInfo, sizeof(TBrowseInfo));
    BrowseInfo.hwndOwner       = Handle;
    BrowseInfo.pidlRoot = IDRoot;
    
    BrowseInfo.pszDisplayName  = BufferDisplayName;
    BrowseInfo.lpszTitle       = "Sélectionnez un dossier pour le backup";
    BrowseInfo.ulFlags         = BIF_DONTGOBELOWDOMAIN | BIF_RETURNFSANCESTORS |
       BIF_NEWDIALOGSTYLE;
    
    BrowseInfo.lParam=LPARAM(&PathBackUp);
    BrowseInfo.lpfn            = BrowseCallbackProc;
    PItemIDList PList          = SHBrowseForFolder(&BrowseInfo);
    if (PList)
            SHGetPathFromIDList(PList, Path);

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    en surfant sur différents sites, j'ai trouvé une solution à mon problème.
    Apparement, c'est mon lParam qui était mauvais. Je l'ai remplacé par

    BrowseInfo.lParam=(LPARAM)(LPCSTR)PathBackUp.c_str();

    et cela fonctionne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. répertoire de départ avec SHBrowseForFolder
    Par beberem dans le forum MFC
    Réponses: 2
    Dernier message: 12/06/2009, 10h16
  2. [Wamp] include php sur serveur perso avec WAMP server
    Par Quality_Design dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 16/02/2006, 01h17
  3. Serveur perso avec ffmpeg
    Par oxor3 dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 08/02/2006, 10h31
  4. Comment sélectionner un répertoire ?
    Par Teddy dans le forum Composants VCL
    Réponses: 4
    Dernier message: 06/02/2006, 19h59
  5. sélectionner un répertoire
    Par estelle dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 02/09/2005, 05h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo