GetOpenFileName() [VC++] - Programmation
Marsh Posté le 04-02-2002 à 18:06:30
Euh si tu es sous VC++ et que tu utilises les MFC, un petit CFileDialog non ?
Marsh Posté le 04-02-2002 à 20:21:10
Au niveau de l'instance tu dois pas filer l'instance de l'application ?
Marsh Posté le 04-02-2002 à 21:03:51
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...
Marsh Posté le 04-02-2002 à 21:10:37
CDialogFile File();
File.Open(_les_options_);
CString strPath = File.GetPathName();
pkoi se prendre le choux ?? autant utiliser MFC!
Marsh Posté le 04-02-2002 à 21:32:20
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 :
|
Marsh Posté le 05-02-2002 à 13:01:27
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.
Marsh Posté le 04-02-2002 à 15:41:11
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.