Salut,
J'aimerai savoir si il existe une dialogue prédéfinie (comme une CFileDialog pour ouvrir ou enregistrer un fichier) qui permet de sélectionner un dossier de destination lorsque je clique sur un bouton parcourir par exemple.
Merci.
Salut,
J'aimerai savoir si il existe une dialogue prédéfinie (comme une CFileDialog pour ouvrir ou enregistrer un fichier) qui permet de sélectionner un dossier de destination lorsque je clique sur un bouton parcourir par exemple.
Merci.
salut,
n'hésite pas à consulter la FAQ : http://c.developpez.com/faq/vc/?page...etCurentFolder
En effet, j'avais déjà vu dans la faq comment récupérer le chemin de destination, mais ce que je recherche c'est une dialog qui présente l'arbre des disques dur et pouvoir ainsi parcourir l'arborescence, le bouton enregistrer ou ouvrir remplacé par un bouton ok pour pouvoir valider le chemin de destination. En faite, existe il une boite de dialogue correspondant à l'implementation d'un bouton parcourir ou faut il la créer soit même?
Merci.
Salut,
En effet.
Ou sinon, si tu veux permettre seulement la selection de repertoires (une boite de dialogue qui ne fait pas apparaitre de fichiers), tu peux
* utiliser l'une des nombreuses classes qu'on trouve sur le net (sur codeguru par exemple)
* ou le code suivant: http://c.developpez.com/faq/vc/?page...s#SelectFolder qui te donnera ça : http://i2.photobucket.com/albums/y31...k/dossiers.jpg
Voilà le code un peu simplifié si tu veux déjà comprendre comme ça marche avant de te lancer dans l'exemple complet ....Choisis la méthode qui te convient le mieux
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 BROWSEINFO bi = { 0 }; bi.lpszTitle = _T("Pick a Directory"); LPITEMIDLIST pidl = SHBrowseForFolder ( &bi ); if ( pidl != 0 ) { // get the name of the folder TCHAR path[MAX_PATH]; if ( SHGetPathFromIDList ( pidl, path ) ) { // faire ton traitement } else { AfxMessageBox("Erreur: impossible d'ouvrir le repertoire",MB_OK|MB_ICONERROR); } // free memory used IMalloc * imalloc = 0; if ( SUCCEEDED( SHGetMalloc ( &imalloc )) ) { imalloc->Free ( pidl ); imalloc->Release ( ); } } else { AfxMessageBox("Erreur: impossible d'ouvrir le repertoire",MB_OK|MB_ICONERROR); }![]()
Partager