Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1848 connectés 

  FORUM HardWare.fr
  Programmation

  probleme avec GetOpenFileName() sous Visual C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme avec GetOpenFileName() sous Visual C++

n°23539
juldjin
Posté le 10-04-2001 à 09:27:22  profilanswer
 

Je crée une structure OPENFILENAME test; et j'initialise les champs comme ci dessous :
 
 test.Flags = OFN_ALLOWMULTISELECT ;
 char Filtre[22] = "BITMAP FILE *.BMP  ";
 Filtre[11] = 0;
 Filtre[17] = 0;
 Filtre[18] = 0;
 
 test.lpstrFilter = Filtre;
 test.lpstrTitle = "CHARGER";
 
 test.lStructSize = sizeof(test);
 
Et puis je fais à un moment donné dans mon programme un GetOpenFileName. Cela marche, je peux choisir un fichier, mais apres une fois que 'lutilisateur appuie sur OK, la chaine indiquat le chemin choisi (test.lpstrFile) et celle contenant le nom du fichier (test.lpstrFileTitle) ne sont pas initialisées.
 
Est ce que qqun maitrise, j'ai rien trouvé sur MSDN...

mood
Publicité
Posté le 10-04-2001 à 09:27:22  profilanswer
 

n°23603
kick
Posté le 10-04-2001 à 12:44:33  profilanswer
 

c'est normal t un blaireau
lol

n°24140
slashp
Posté le 11-04-2001 à 23:53:26  profilanswer
 

Cela devrait répondre à ta question:
 
BOOL FileOpen (HWND hwnd,char *filename)
{
 OPENFILENAME ofn ;
 
 char szFilter[] = "Dossiers\0..\0"  \
                                 "Tous les fichiers (*.*)\0*.*\0\0" ;
 
 ofn.lStructSize       = sizeof (OPENFILENAME) ;
 ofn.hwndOwner         = hwnd ;
 ofn.hInstance         = NULL ;
 ofn.lpstrFilter       = szFilter ;
 ofn.lpstrCustomFilter = NULL ;
 ofn.nMaxCustFilter    = 0 ;
 ofn.nFilterIndex      = 0 ;
 ofn.nMaxFile          = _MAX_PATH ;
 ofn.nMaxFileTitle     = _MAX_FNAME + _MAX_EXT ;
 ofn.lpstrInitialDir   = NULL ;
 ofn.lpstrTitle        = NULL ;
 ofn.nFileOffset       = 0 ;
 ofn.nFileExtension    = 0 ;
 ofn.lpstrDefExt       = "txt" ;
 ofn.lCustData         = 0L ;
 ofn.lpfnHook          = NULL ;
 ofn.lpTemplateName    = NULL ;
 
 ofn.lpstrFile         = filename;
 ofn.lpstrFileTitle    = NULL;
 ofn.Flags             = OFN_HIDEREADONLY | OFN_CREATEPROMPT ;
 
 return GetOpenFileName(&ofn);
}
 
Avec ce bout de code normalement ça marche (enfin ça marche pour moi.
 
Voila

n°24152
juldjin
Posté le 12-04-2001 à 08:39:50  profilanswer
 

merci slashp, mais apres pour recuperer le nom et le chemin, pas facile, et est ce que tu maitrise le SHBrowseForFolder ?

n°24186
slashp
Posté le 12-04-2001 à 10:03:47  profilanswer
 

Pour faire un browse folder utiliser la fct suivante:
 
BOOL BrowseFolder(HWND hwnd,char *directory)
{
 BROWSEINFO browse;
 LPITEMIDLIST itemidlist;
 
 browse.hwndOwner=hwnd;
 browse.pszDisplayName=directory;
 browse.lpszTitle=NULL;
 browse.ulFlags=BIF_EDITBOX;
 browse.lpfn=NULL;
 browse.lParam=0;
 browse.pidlRoot=NULL;
 
 if ((itemidlist=SHBrowseForFolder(&browse))==NULL)
  return 0;
 if (SHGetPathFromIDList(itemidlist,directory)==NULL)
  return 0;
 strcat(directory,"\\" ); //rajoute un slash à la fin du chemin du dossier
 return 1;
}
 
Voila...

n°24189
juldjin
Posté le 12-04-2001 à 10:11:38  profilanswer
 

pouah, encore une fois merci, je vais tester ca tout de suite sans plus tarder !!!!!!!!!!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  probleme avec GetOpenFileName() sous Visual C++

 

Sujets relatifs
recuperation de la valeur d'une edit box [visual c++][JAVA] Probleme bizarre avec des threads
Tutorial sur Visual C++ 6 .. niveau debutant[VB] Probleme d'actualisation de combo box
[ACCESS 2000] probléme de connection avec OutlookProbleme chelou dans acces 97
Documentation sur les controles en Visual C++p'tit problème Sql
c quoi le code de la fonction hasard en visual basic?sondage sur visual interdev
Plus de sujets relatifs à : probleme avec GetOpenFileName() sous Visual C++


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR