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

 


Dernière réponse
Sujet : probleme avec GetOpenFileName() sous Visual C++
juldjin pouah, encore une fois merci, je vais tester ca tout de suite sans plus tarder !!!!!!!!!!

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
juldjin pouah, encore une fois merci, je vais tester ca tout de suite sans plus tarder !!!!!!!!!!
slashp 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...
juldjin merci slashp, mais apres pour recuperer le nom et le chemin, pas facile, et est ce que tu maitrise le SHBrowseForFolder ?
slashp 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
kick c'est normal t un blaireau
lol
juldjin 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...

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)