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 :

controle d'arborescence


Sujet :

Windows

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 41
    Points : 38
    Points
    38
    Par défaut [RESOLU] controle d'arborescence
    Bonjour ,

    J'ai besoi dans mon application que l'utilisateur puisse selectionner un repertoire dans l'arborescence des disque dur . Pour ca je veut(enfin mon boss veut plutot) que cela ne se fasse pas en chaine de caracter mais avec une belle interface . En fait je veut optenir le meme type de controle que lorsque ont met Fichier->Ouvrir dans n'importe quel logiciel Window.
    L'utilisateur poura par exemple cliquer sur c: puis sur ProgramFiles puis sur temp pour se retrouver la C:/ProgrramFiles/temp/ .
    Pour le moment j'ai utilise une ListBox avec la fonction DlgDirList() mais j'obtien la liste des repertoires et fichier contenu par exemple dans c: mais je ne peut pas ouvrir l'un des dossier pour continuer dans l'arborescence .

    Donc voila je code en C++ sous Visual.Net et je voudrai savoir comment obtenit (sans MFC si possible) ce type de control .

    Merci

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    tu as les choix
    soit tu utilise un browser, ca le fait tout seul
    soit tu utilise une treeview pour taffer dessus
    cest assez simple car jai reussi, et bien sûr pas de MFC du tout car jy comprend quedalle

    le cas du browser
    on va dire que tu as un bouton IDC_CHERCHE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    case WM_COMMAND: //quand on clique sur un bouton
    		if (LOWORD(wParam) == IDC_CHERCHE)//le bouton cherche
    		{
    			SelectDir(szRepert);//fonction browse
    			SetDlgItemText    
    (hDlg,IDC_EDIT2,szRepert);//ca affiche dans une edit dialogue le chemin que tu as choisi
    		}
    (moi je le reaffiche, car je taffe dessus apres.je veux jsute le chemin)
    et la fonction que tu appelle et que tu peux coller telle quelle nimporte où:
    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
    /*************************************************
    *    Fonction de selection d'un repertoire       *
    *  ouvre un browser où l'on choisi un repertoire *
    *  qui nous est retourné en tant que chemin      *
    *************************************************/
    int SelectDir( char szPath[MAX_PATH+1] )
    {
    	
    	BROWSEINFO browser;
    	ITEMIDLIST *il;
    	char Buffer[MAX_PATH];
    	browser.hwndOwner=hDlg;//handle de la fenetre qui lappelle
    	browser.pidlRoot=NULL;//dou on demarre:ici C:
    	browser.pszDisplayName=&Buffer[0];
    	browser.lpszTitle="Choisissez un répertoire :";//un titre a la petite fenetre qui souvre
    	browser.ulFlags=0;//on sen fout
    	browser.lpfn=NULL;//je sais pas :)
    	if( (il=SHBrowseForFolder(&browser)) ==NULL ) return 0; 
    	return SHGetPathFromIDList(il, &szPath[0]);
    }

    en fait, cest une fonction dej apreparée, je crée une structure de recherche et quand tu lappelel, tu lui donne un char szRepert [256] comme parametre, et ca te met le chemin choisi dedans. tu verra, ca fait tout tout seul une vraie fonction de faignasse, mais cest la fonction fichier>ouvrir

    logiquement, ca suffit largement pour ce que veux le boss, et si tu as un probleme avec ca, mp moi


    ps: un autre truc, dans le browse, il y a SHBrowseForFolder, ca veut dire, que je me balade parmi les dossiers sans afficher les fichiers, mais tu peux changer ce parametre si tu veux tout. cherche dans la msdn


    [edit]mets plutot ca dans Visual ou borland, cest plus la place de ton post car on ne sait pas en quoi tu code et oublie pas [resolu] si ca marche
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  3. #3
    Débutant
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 41
    Points : 38
    Points
    38
    Par défaut
    mon compilateur ne semble pas apprecier la structure BROWSEINFO , y veut pas compilé , le salaud !!!! votre message me laisser pourtant plein d'esspoir .

    Et pui je comprent pas ou est ce que vas s'afficher l'arborescence ? Il me faut une listbox , un combobox ? il me faut rien et c'est le browseinfo qui fait tout ?

  4. #4
    Débutant
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 41
    Points : 38
    Points
    38
    Par défaut
    Ouai bah en fait si ca march parfaitement . Terible ton bou de code sa marche tout seul , moi qui voulais me faire chier avec les ListBox et encore je sais pas si c'est possible .
    Par contre il ne faut pas oublié d'inclure shlobj.h , forcement ca marche mieux avec le header ...

  5. #5
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    oui, pour ca, je mexcuse. javais oublier, dailleurs je viens de le reutiliser et je lavait oublier. mais heuresmeent que msdn est là
    zont qua pas mettre des noms aussi bizarres sur leurs headers
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

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

Discussions similaires

  1. [OpenOffice][Tableur] Macro Calc - controle arborescence (treecontrol)
    Par patous_74 dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 01/09/2008, 11h46
  2. [VB6] [Interface] Tester le Type de Controle
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 16/09/2002, 09h51
  3. arbre de parcour d'arborescence windows
    Par chupachoc dans le forum Composants
    Réponses: 7
    Dernier message: 09/09/2002, 08h09
  4. [controle] propriété read only
    Par Fizgig dans le forum Composants VCL
    Réponses: 6
    Dernier message: 28/08/2002, 10h30
  5. Rx Controls Gif animés
    Par toufou dans le forum Composants VCL
    Réponses: 6
    Dernier message: 23/08/2002, 14h09

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