Bouton parcourir...

Signaler
Messages postés
68
Date d'inscription
vendredi 9 mai 2003
Statut
Membre
Dernière intervention
14 septembre 2007
-
Messages postés
68
Date d'inscription
vendredi 9 mai 2003
Statut
Membre
Dernière intervention
14 septembre 2007
-
Voila :
j'ai une EditBox avec un bouton Parcourir à coté et je voudrai que qd je clic ça ouvre une boite de dialogue et que je puisse aller sélectionner le fichier que je veu dans le dossier que je veu, et simplement que le chemin apparaisse ensuite dans l'EditBox. J'ai déja trouvé des inforlations la dessus sur le site mais je n'arrive pas à y mettre en oeuvre.
Quelqu'un pourait il me fournir un exemple avec la source?
Ca a l'air si simple pourtant...
Merci d'avance.

5 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Ne serait-ce pas un selecteur de dossier ?
Regarde la derniere source que je viens de mettre.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
68
Date d'inscription
vendredi 9 mai 2003
Statut
Membre
Dernière intervention
14 septembre 2007

Pas tout a fait.
Enfait,je voudrai pouvoir aller chercher le fichier que je veu, et voir ensuite dans l'editbox le chemin complet mais que jusqu'a ce fichier là...comprends tu?
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Selecteur de fichier c'est idem dans mes sources.
Pour tronquer juste la partie path, tu mettras un pointeur au debut du nom de fichier:
char *c = szfile;
while(*c) c++; // va zero final
while(*c != '\\') c--;
*c = 0; // reste plus que le path

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
BruNews> J'crois qu'il veut utiliser les Dialogues GetOpenFileName et SaveOpenFileName ....

Buzu> Voici un exemple complet qui te permette de selectionner un fichier (c:\monfichier.txt) et d'afficher le chemin dans une editbox qui contiendra donc "c:\monfichier.txt" :
bool ChooseFile(HWND hEditBox)
{

char			File[MAX_PATH];
OPENFILENAME	ofn;

ZeroMemory(File,sizeof(File));

ofn.lStructSize = sizeof(ofn); 
ofn.hwndOwner = GetActiveWindow(); 
ofn.hInstance = GetModuleHandle(NULL); 
ofn.lpstrCustomFilter = NULL; 
ofn.nMaxCustFilter = NULL; 
ofn.nFilterIndex = 0; 
ofn.lpstrFile = File; 
ofn.nMaxFile = sizeof(File); 
ofn.lpstrFileTitle = NULL; 
ofn.nMaxFileTitle = NULL; 
ofn.lpstrInitialDir = NULL; 
ofn.nFileOffset = NULL; 
ofn.nFileExtension = NULL; 
ofn.lpstrDefExt = "*.lst"; 
ofn.lCustData = NULL; 
ofn.lpfnHook = NULL; 
ofn.lpTemplateName = NULL;
ofn.Flags = OFN_HIDEREADONLY | OFN_FILEMUSTEXIST; 
ofn.lpstrTitle = "Choisir le fichier à ouvrir";
ofn.lpstrFilter = "Executable (*.exe)\0*.exe\0Tous les fichiers\0*.*\0\0"; 

if( !GetOpenFileName( &ofn ) ) 
return false;
else
{
SetWindowText(hEditBox,File);
return true;
}

return false;
}


Tu n'as plus qu'a copier cette fonction dans ton programme, sans oublier son prototype si tu la mets après le WinMain();
Pour l'utiliser c'est simple, tu as juste a lui passer en parametres le handle de ta EditBox.
Exemple:
HWND hEdit1;

hEdit1 = GetDlgItem(hWnd,IDC_EDIT1);
if(!ChooseFile(hEdit1))
MessageBox(hWnd,"Il y a eu une erreur!",NULL,MB_ICONSTOP);


La fonction retourne true si tout s'est bien passé et false dans le cas contraire.

A++ et bonne continuation...

Samir
Messages postés
68
Date d'inscription
vendredi 9 mai 2003
Statut
Membre
Dernière intervention
14 septembre 2007

Super c'est exactement ce qu'il me fallait.
Merci BruNews et DeAtHCrAsH!