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

  FORUM HardWare.fr
  Programmation

  [VC++] GetOpenFileName()

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VC++] GetOpenFileName()

n°96610
R3g
fonctionnaire certifié ITIL
Posté le 04-02-2002 à 15:41:11  profilanswer
 

Je veux faire une fonction qui permet de recuperer un nom de fichier. J'ai fait ca :
......
    OPENFILENAME ofn;
    char szFileName[260];
    char szFileTitle[80];
    HWND hwnd = m_hWnd;
     
     
    ZeroMemory(&ofn, sizeof(OPENFILENAME));
    ofn.lStructSize = sizeof(ofn);
    ofn.hwndOwner = hwnd;
    ofn.hInstance = NULL;
    ofn.lpstrFile = szFileName;
    ofn.nMaxFile = sizeof(szFileName);
    ofn.lpstrFilter = "Tous\0*.*\0Images Bitmap\0*.BMP\0";
    ofn.lpstrTitle = "Ouvrir une image...";
    ofn.nFilterIndex = 1;
    ofn.lpstrFileTitle = szFileTitle;
    ofn.nMaxFileTitle = sizeof(szFileTitle);
    ofn.lpstrInitialDir = NULL;
    ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
    ofn.lpstrDefExt = "bmp";
 
    if (GetOpenFileName(&ofn)){
       .......
 
Ca compile, mais la boite de dialogue ne s'affiche pas, et  
CommDlgExtendedError() renvoie CDERR_INITIALIZATION.
 
J'ai rien trouve dans l'aide pour expliquer cette erreur, alors si quelqu'un avait une idee....
 
Merci d'avance.

mood
Publicité
Posté le 04-02-2002 à 15:41:11  profilanswer
 

n°96656
R3g
fonctionnaire certifié ITIL
Posté le 04-02-2002 à 18:00:46  profilanswer
 

Et ben, personne trouve ?
 
Bon, ben up alors !

n°96660
VisualC++
J'va y penser ...
Posté le 04-02-2002 à 18:06:30  profilanswer
 

Euh si tu es sous VC++ et que tu utilises les MFC, un petit CFileDialog non ?


---------------
VT ... Vaucluse / Vrille(euse :sarcastic: ) c'est pareil tant qu'il y a l'humour :D
n°96685
godbout
Génial.
Posté le 04-02-2002 à 20:21:10  profilanswer
 

Au niveau de l'instance tu dois pas filer l'instance de l'application ?


---------------
Super.
n°96706
deathsharp
Posté le 04-02-2002 à 21:03:51  profilanswer
 

chez moi aussi ca plante :??:  
meme les exemples de MSDN et pi les "vieux" exemple fourni avec le bookin de Petzold ( qui fonctionnait bien )
 
ca m'interresse tout ca...


---------------
What butter and whiskey won't cure, there is no cure for.
n°96718
la viper
Posté le 04-02-2002 à 21:10:37  profilanswer
 

CDialogFile File();
File.Open(_les_options_);
CString strPath = File.GetPathName();
 
 
pkoi se prendre le choux ?? autant utiliser MFC!

n°96724
chrisbk
-
Posté le 04-02-2002 à 21:32:20  profilanswer
 

ton filter me semble pas bon
 
ofn.lpstrFilter = "Tous\0*.*\0Images Bitmap\0*.BMP\0";
 
il faut que ca se finisse par un double \0 (\0\0 donc)
 
dans tous les ca vala un bout de code qui marchez chez moi :
 

Code :
  1. static TCHAR strInitialDir[512];
  2. static TCHAR strFileName[512];
  3. static TCHAR strCurrentName[512];
  4. OPENFILENAME ofnExe = { sizeof(OPENFILENAME), hWnd, 0,
  5.         "executable Files (*.Exe)\0*.exe\0\0",
  6.         NULL, 0, 1, strCurrentName, 512, strFileName, 512,
  7.         strInitialDir, "Open",OFN_EXPLORER|OFN_FILEMUSTEXIST, 0, 1,
  8.         "exe", 0, NULL, NULL };
  9. GetOpenFileName( &ofnExe );

n°96917
Carbon_14
Posté le 05-02-2002 à 13:01:27  profilanswer
 

Godbout a écrit a écrit :

Au niveau de l'instance tu dois pas filer l'instance de l'application ?  




 
L'instance de l'application est obligatoire quand on hooke la feuille de dialogue. Si on hooke pas, NULL convient très bien.


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

  [VC++] GetOpenFileName()

 

Sujets relatifs
probleme avec GetOpenFileName() sous Visual C++ 
Plus de sujets relatifs à : [VC++] GetOpenFileName()


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