Pb avec une CFileDialog avec visual C++

Signaler
Messages postés
28
Date d'inscription
dimanche 9 mars 2003
Statut
Membre
Dernière intervention
8 juin 2005
-
Messages postés
51
Date d'inscription
mercredi 25 décembre 2002
Statut
Membre
Dernière intervention
17 mars 2008
-
bonjour, en visual C++, lorsque j'utiise une CFileDialog en mode "enregistrer sous" le path de l'application change suivant le repertoire choisi dand la boite de dialogue. Comment puis-je remettre le path (celui de l'executable) ou le conserver? Parce que je possède un fichier séquentiel dans ce répertoire, et je ne peux plus l'ouvrir correctement (car il essaie de le chercher. Merci.
A voir également:

7 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
OFN_NOCHANGEDIR
faut consulter le msdn.
BruNews, ciao...
Messages postés
28
Date d'inscription
dimanche 9 mars 2003
Statut
Membre
Dernière intervention
8 juin 2005

merci beaucoup
dans la msdn j'avais pas trouve et je vois pas ou c'est..
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Dis voir je ne fais jamais de mfc et je viens d'ouvrir msdn sur CFikeDialog. J'y vois un membre m_ofn.
Il est dit clairement que tu accedes grace a lui a l'initialisation des membres de la structure OPENFILENAME.
Comme d'hab mfc ne sert a rien puisque a la finale on arrive a la vrai API, enfin si vous voulez en apprendre 2, tant pis pour vous.
BruNews, ciao...
Messages postés
51
Date d'inscription
mercredi 25 décembre 2002
Statut
Membre
Dernière intervention
17 mars 2008

eh bien le lien pour aller a la doc est :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cfiledialog.asp
et effectivement BruNews a raison il faut bien intialiser l'agent OPENFILENAME
Les MFC sont les Classes Fondatrices Microsoft (eay way for API and OCX)
Messages postés
5
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
29 mai 2005
1
Bonjour
Un informaticien c'est celui qui'est capable de s'adapter a differentes situations, autrement dit, il doit (souligner le mot 'doit') avoir une formation encyclopedique, il doit connaitre le maximum possible d'informations,
Messages postés
51
Date d'inscription
mercredi 25 décembre 2002
Statut
Membre
Dernière intervention
17 mars 2008

perso  je prefere lápi directement au lieu de passe par les mfc qui finalement revient plus chiant mais bon mon avis
en tk tu peux tjs inclure une fonction menbre dans ton projet mfc
je suppose que ton projet roule sur un dialog
CMaclasseDlg::OuvrirFichiers(LPCTSTR Titre, LPCTSTR Filtre){

char szFile[255];
OPENFILENAME ofn;
ZeroMemory(&ofn,
sizeof(ofn));
ofn.lStructSize =
sizeof(ofn);
ofn.hwndOwner = spymsg;
ofn.lpstrFile = szFile;
ofn.lpstrFile[0] = '\0';
ofn.nMaxFile =
sizeof(szFile);
ofn.lpstrInitialDir = "c:\";
ofn.lpstrFilter =Filtre;
ofn.nFilterIndex = 1;
ofn.lpstrTitle=Titre;
ofn.lpstrFileTitle =NULL;
ofn.nMaxFileTitle = 0;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

if
(GetOpenFileName(&ofn)==TRUE) {
   HANDLE hf = CreateFile(ofn.lpstrFile, GENERIC_READ,0, (LPSECURITY_ATTRIBUTES),NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,(HANDLE) NULL);

SetDlgItemText( IDC_MONLABGEL,ofn.lpstrFile);

}
Messages postés
51
Date d'inscription
mercredi 25 décembre 2002
Statut
Membre
Dernière intervention
17 mars 2008

ah j'y pense voici les definition des constantes pour openfilename
#define

OFN_READONLY 0x00000001

#define OFN_OVERWRITEPROMPT 0x00000002

#define OFN_HIDEREADONLY 0x00000004

#define OFN_NOCHANGEDIR 0x00000008

#define OFN_SHOWHELP 0x00000010

#define OFN_ENABLEHOOK 0x00000020

#define OFN_ENABLETEMPLATE 0x00000040

#define OFN_ENABLETEMPLATEHANDLE 0x00000080

#define OFN_NOVALIDATE 0x00000100

#define OFN_ALLOWMULTISELECT 0x00000200

#define OFN_EXTENSIONDIFFERENT 0x00000400

#define OFN_PATHMUSTEXIST 0x00000800

#define OFN_FILEMUSTEXIST 0x00001000

#define OFN_CREATEPROMPT 0x00002000

#define OFN_SHAREAWARE 0x00004000

#define OFN_NOREADONLYRETURN 0x00008000

#define OFN_NOTESTFILECREATE 0x00010000

#define OFN_NONETWORKBUTTON 0x00020000

#define OFN_NOLONGNAMES 0x00040000

#define OFN_EXPLORER 0x00080000

#define OFN_NODEREFERENCELINKS 0x00100000

#define OFN_LONGNAMES 0x00200000

#define OFN_ENABLEINCLUDENOTIFY 0x00400000

#define OFN_ENABLESIZING 0x00800000

#define OFN_DONTADDTORECENT 0x02000000

#define OFN_FORCESHOWHIDDEN 0x10000000 

#define OFN_EX_NOPLACESBAR 0x00000001

#define OFN_SHAREFALLTHROUGH 2

#define OFN_SHARENOWARN 1

#define OFN_SHAREWARN 0
remarque la plut part de ces definitions la sont trouvable dans le fichier "commdlg.h"