Afficher le fichier 'ouvrir' directement dans une boite de dialogue

cs_bethany Messages postés 26 Date d'inscription vendredi 2 avril 2004 Statut Membre Dernière intervention 15 mars 2005 - 2 avril 2004 à 15:06
glipper Messages postés 246 Date d'inscription dimanche 2 juin 2002 Statut Membre Dernière intervention 11 septembre 2016 - 12 mai 2004 à 22:32
Bonjour,
J'aimerai savoir comment je peux faire apparaitre la meme chose que la boite ouvrir (je ne veux pas un CFileOpen) dans une boite de dialogue sauf que la présentation serait plutot avec des + et des - (sachant que le + indique qu'il y aurait un sous dossier et que le moins marquerait ke l'on a ouvert le dossier ou il y a des sous dossiers!
Merci de m'aider !!!
Bethany
Allez... Je vais y arriver lol :big)

5 réponses

glipper Messages postés 246 Date d'inscription dimanche 2 juin 2002 Statut Membre Dernière intervention 11 septembre 2016 1
2 avril 2004 à 20:34
Bonjour,

La seule solution que je verrais serait d'utiliser une treeView. Le problème, c'est que c'est assez long à utiliser. Il faut rentrer les items à la main.

Donc il faudrait utiliser les fonctions : FindFirstFile() et FindNextFile() pour lister le contenu d'un repertoire, et entrer ensuite les fichiers trouvés dans la treeview... et recommencer l'operation à chaque fois que l'on double-clique sur un dossier.

Moi je ne vois pas d'autre solution. Si personne ne t'as encore répondu, c'est surement que ça ne doit pas etre évident.

La solution que je te propose est assez longue à programmer je pense. Mais si ça t'interresse, tu peux aller voir le source de Xentor609 à l'adresse http://www.cppfrance.com/code.aspx?ID=10929 qui t'aidera surement :)

++ Glipper

ps : si tu as besoin d'aide, n'hesite pas à me demander, j'essaierais de t'aider dans la mesure de mes capacités :)
0
glipper Messages postés 246 Date d'inscription dimanche 2 juin 2002 Statut Membre Dernière intervention 11 septembre 2016 1
2 avril 2004 à 20:35
J'ai juste oublié d'ajouter qu'il est possible avec une treeView de faire apparaitre les + et les - (même si ça n'apparait pas dans la source de Xentor609 que j'ai donné en exemple)

Voila voila ;)
++ Glipper
0
PunkDude424 Messages postés 117 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 24 avril 2006
2 avril 2004 à 21:55
Voila, c ce que tru veux!!!!!

elle te retourne le chemin du répertoire

char * ParcourirRep()
{
BROWSEINFO repertoire;

char Buffer[MAX_PATH];
CWnd Win;
char Result[MAX_PATH];
ITEMIDLIST *list;
char *retour;

Win.GetActiveWindow();

repertoire.hwndOwner=CConfigFile::m_hWnd;
repertoire.pidlRoot=NULL;
repertoire.pszDisplayName=&Buffer[0];
repertoire.lpszTitle="Choisir un répertoire ...";
repertoire.ulFlags=BIF_VALIDATE|BIF_EDITBOX ;
repertoire.lpfn=NULL;

if ((list=SHBrowseForFolder(&repertoire))==NULL)
return NULL;

SHGetPathFromIDList(list,&Result[0]);

retour = Result;

return retour;
}
0
PunkDude424 Messages postés 117 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 24 avril 2006
2 avril 2004 à 22:21
Enleve le CWnd win pis le win.GetActiveWindow....jme suis tromper sa sert a rien
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
glipper Messages postés 246 Date d'inscription dimanche 2 juin 2002 Statut Membre Dernière intervention 11 septembre 2016 1
12 mai 2004 à 22:32
Hum en fait après une méditation profonde, si c'est l'adresse d'un dossier que tu veux récuperer, il suffisait d'utiliser la fonction SHBrowseForFolder() mais bon !!! mdr

++ Glipper

exemple:
char DEF_CHEMIN_FILE[MAX_PATH];
ITEMIDLIST *Item;
BROWSEINFO bi;

bi.hwndOwner=hWnd;
bi.pidlRoot=NULL;
bi.pszDisplayName=&DEF_CHEMIN_FILE[0];
bi.lpszTitle="Selectionner un dossier...";
bi.ulFlags=0;
bi.lpfn=NULL;

Item = SHBrowseForFolder(&bi);
SHGetPathFromIDList(Item,&DEF_CHEMIN_FILE[0]);
SetDlgItemText(hWnd, ... , DEF_CHEMIN_FILE);
0
Rejoignez-nous