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

MFC Discussion :

afficher le contenu d'1 dossier ds ListBox


Sujet :

MFC

  1. #1
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut afficher le contenu d'1 dossier ds ListBox
    bonjour
    svp comment je peux afficher le contenu d'un dossier ds un ListBox
    par exempl:
    le dossier mes images contient plusieurs image, je vx afficher les noms des images ds ma liste?????
    vous pouvez m'aider?

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Tu as du bol, il existe une fonction pour ça:
    Il faut envoyer le message LB_DIR à ta ListBox...

  3. #3
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut ,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pMyListBox->Dir(DDL_READWRITE|DDL_DIRECTORY, _T("*.*"));
    voir la documetation MFC pour plus d'infos sur les types...

  4. #4
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    est cette fonction affiche le contenu d'un dossier???
    et comment je choisis le directory

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    en changeant le repertoire de base au préalable...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    TCHAR lpszWinPath[MAX_PATH], lpszOldPath[MAX_PATH];
    ::GetWindowsDirectory(lpszWinPath, MAX_PATH); // ici on recupere le repertoire windows pour l'exemple
     
    ::GetCurrentDirectory(MAX_PATH, lpszOldPath);// on stock le repertoire courant
    ::SetCurrentDirectory(lpszWinPath);// on de deplace sur le repertoire à lister
     
    pMyListBox->ResetContent();
    pMyListBox->Dir(DDL_READWRITE|DDL_DIRECTORY, _T("*.*"));
     
    ::SetCurrentDirectory(lpszOldPath);// on revient sur le repertoire d'origine.

  6. #6
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    svp je te pose qqs questions betes
    par exemple j'ai une liste : ICC_NOM_IMAGE
    je vx afficher le contenu de dossiers mes images( çàd affichers ts les noms d'images existants ds la ListBox)
    mnt le code que tu m'ecris me permet de choisir un repertoire courant et de deplacer........
    mais ou je mets ce code??
    en plus y a t il des initialisations ??
    lpszWinPath[MAX_PATH] et lpszOldPath[MAX_PATH] signalent koi??


    merci

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    lpszWinPath et lpszOldPath sont deux tableaux de caractères, de longueur MAX_PATH.

    lpszWinPath est initialisé avec le chemin du répertoire de Windows (par défaut, c'est C:\Windows).

    lpszOldPath contient la sauvegarde de l'ancien répertoire courant, qui est restauré à la fin.
    Ainsi, l'exécution de ce fragment de code ne "change" pas le répertoire courant (c'est le même avant et après).


    Attention toutefois en multi-thread: D'après l'aide, il n'y a qu'un seul répertoire courant pour tout le processus, donc si plusieurs threads doivent l'utiliser, il vaut mieux utiliser un mécanisme de verrouillage...

  8. #8
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    je te remercie de tes explications
    mais il me reste qqs qst
    j'initiale lpszWinPath[MAX_PATH]= "c:\\Window";
    mais ou je mets ce code + commet je le lieer à ma ListBox

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    OÙ AS-TU VU QUELQU'UN METTRE EXPLICITEMENT LE DOSSIER C:\WINDOWS ??

    C'est à ça que servait la fonction GetWindowsDirectory.


    Et comme l'indique le code précédent, tu n'as pas à le "lier" à la listbox: La fonction membre CListBox::Dir() regarde dans le répertoire courant.
    http://msdn2.microsoft.com/en-us/library/9hdx240b.aspx

  10. #10
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    non jamis vu
    car je fait execute ce code , il me done plusieurs erreurs

  11. #11
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    bonsoir
    qd j'execute ce morceux de 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
     
    BOOL CInserDlg::OnInitDialog() 
    {
    	CDialog::OnInitDialog();
     
    	// TODO: Add extra initialization here
     
    		TCHAR lpszWinPath[MAX_PATH], lpszOldPath[MAX_PATH];
     
    		::GetWindowsDirectory(lpszWinPath, MAX_PATH); // ici on recupere le repertoire windows pour l'exemple
    		::GetCurrentDirectory(MAX_PATH, lpszOldPath);// on stock le repertoire courant
    		::SetCurrentDirectory(lpszWinPath);// on de deplace sur le repertoire à lister
    		 CListBox* pMyListBox ;
    			pMyListBox=(CListBox*) GetDlgItem(IDC_MARQUES_CIMAGE);
     
    		pMyListBox->ResetContent();
    		pMyListBox->Dir(DDL_READWRITE|DDL_DIRECTORY, _T("*.*"));
    		// pMyListBox->Dir(0x0000|0x0010, _T("*.*"));
    		::SetCurrentDirectory(lpszOldPath);            // on revient sur le repertoire d'origine.
     
     
     
    	return TRUE;  // return TRUE unless you set the focus to a control
    	              // EXCEPTION: OCX Property Pages should return FALSE
    }
    je m'affiche ds ma liste le contenu de dossier "C:\\Window"

    mais qd je click sur un dossier rien ne hange
    çàd je n'arrive pas à lister le contenu de ce dosier ou bien de rementer dehors
    car moi je vx afficger le ontenu de mes images

    2eme question est ce que je px intialiser le hemin p "c:\\" au lieu de "c:\\Window"
    merci d'avance

  12. #12
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    La ListBox ne fait pas le boulot à ta place.
    Si tu veux que ça change de dossier quand tu cliques (ou double-cliques) sur un nom de la ListBox, il va falloir que tu le programmes toi-même:
    • Recevoir l'événement "clic sur un nom de la listbox"
    • Traiter l'événement en prenant le nom du répertoire (chemin complet) et en le mettant en Current Directory pour réappeler la fonction Dir()...

  13. #13
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    une question bête ?
    pourquoi tu n'utilises pas la classe CFileDialog directement ?

  14. #14
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    bonjour
    comment j'utilise la classe CFileDialog directement???? j'ai pas compris ce que tu me dis!!!!!!!!
    pour ma question ets ce que je px intiliser le chemin par " c:\\" au lieu de "c:\\Window", est possible???
    et pour lister les dossier et rementer , j'utilise getcursel(), mais j'ai pas compris ce que tu as ecris -appler fonction dir???

  15. #15
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    comment j'utilise la classe CFileDialog directement????
    C'est dingue, on dirait que les deux threads ont été postés par deux "meera" différent(e)s...

  16. #16
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    ce que je veux dire, comment je 'utiliser pour aficher le contenu d'un dossier
    l'autrefois je l'ai utilisé pour afficher la boite dialog d'ouverture
    Mr farscape me dit utilisé ce clase directement , je suis perturbé est ce que j'utilise ce morceaux de ciode et l'ameliorer ou bien changer la methode e utilisant ce classe
    c ça ma question

  17. #17
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    salut
    j'ai lit la postion de curseur sur la liste pour choisir de lister un dossier
    mais je sais pas cmt compler le code apres la lecture de position
    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
     
    BOOL CInserDlg::OnInitDialog() 
    {
    	CDialog::OnInitDialog();
     
    	// TODO: Add extra initialization here
    	SetDlgItemInt(IDC_INITGEN, 0);	
    	SetDlgItemInt(IDC_LARG, 0);
     
     
     
    	TCHAR lpszWinPath[MAX_PATH], lpszOldPath[MAX_PATH];
    	::GetWindowsDirectory(lpszWinPath, MAX_PATH); // ici on recupere le repertoire windows pour l'exemple
    	::GetCurrentDirectory(MAX_PATH, lpszOldPath);// on stock le repertoire courant
    	::SetCurrentDirectory(lpszWinPath);// on de deplace sur le repertoire à lister
    	 CListBox* pMyListBox ;
    	pMyListBox=(CListBox*) GetDlgItem(IDC_MARQUES_CIMAGE);
     
    	pMyListBox->ResetContent();
    	pMyListBox->Dir(DDL_READWRITE|DDL_DIRECTORY, _T("*.*"));
    	// pMyListBox->Dir(0x0000|0x0010, _T("*.*"));
    	::SetCurrentDirectory(lpszOldPath);            // on revient sur le repertoire d'origine.
     
     
     
     
     
    	int n= static_cast< CListBox * >(GetDlgItem(IDC_MARQUES_CIMAGE))->GetCurSel();
     
    if(n!=LB_ERR) static_cast< CListBox * >(GetDlgItem(IDC_MARQUES_CIMAGE))->GetText(n,pMyListBox);
     
    ?
    ?
     
     
     
     
    	return TRUE;  // return TRUE unless you set the focus to a control
    	              // EXCEPTION: OCX Property Pages should return FALSE
    }
    est ce qq1 pt m'aider:oops:

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

Discussions similaires

  1. afficher le contenu d"un dossier photo
    Par Stéph utilisateur d'acces dans le forum Débuter
    Réponses: 3
    Dernier message: 19/11/2009, 10h44
  2. Afficher le contenu d'un dossier IMG
    Par actarus4444 dans le forum Langage
    Réponses: 6
    Dernier message: 28/08/2009, 16h33
  3. Afficher le contenu d'un dossier dans une page HTML
    Par mauriceuh dans le forum Balisage (X)HTML et validation W3C
    Réponses: 23
    Dernier message: 20/02/2007, 16h57
  4. Afficher le contenu d'un dossier
    Par mpascolo dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 12/10/2006, 14h59
  5. afficher le contenu d'un dossier distant
    Par roots_man dans le forum ASP
    Réponses: 3
    Dernier message: 04/02/2005, 17h23

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