Utilisation de SaveFileDialog en C++ .NET

gicel76 Messages postés 1 Date d'inscription jeudi 25 janvier 2007 Statut Membre Dernière intervention 25 janvier 2007 - 25 janv. 2007 à 12:16
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 25 janv. 2007 à 13:45
Bonjour
J'ai développé un projet en C++ sous Visual, basé sur une boite de dialogue. Quand l'opérateur quitte le logiciel, ce dernier lui propose d'enregistrer des données. Actuellement, l'opérateur doit taper le chemin complet de son fichier. J'aimerai pouvoir utiliser la boite de dialogue "Enregistrer sous..." quand l'opérateur clique sur un bouton (cela lance la fonction OnBROWSE).
J'ai cherché pendant des heures (dans l'aide Visual, sur Google et sur cppfrance) et à chaque fois, on me propose d'utiliser SaveFileDialog en me donnant toujours le même exemple. J'ai configuré toute ma fonction (en fonction de l'aide Visual) mais le compilateur me dit que SaveFileDialog est un identificateur inconnu.

void

CSave::OnBROWSE() {

HANDLE myStream;

SaveFileDialog dlg =

new SaveFileDialog();dlg.set_InitialDirectory("c:\");

//Chemin par défautdlg.set_Filter("Excel files (*.xls)|*.xls|Word files (*.doc)|*.doc|txt files (*.txt)|*.txt|All files (*.*)|*.*");

//liste des types de fichiers possiblesdlg.set_FilterIndex(1);

//Type de fichier par défaut (excel)dlg.set_RestoreDirectory(TRUE);

dlg.set_Title("Enregistrer sous...");

//Titre de la fenêtredlg.set_AddExtension(TRUE);

//la boite de dialogue l'extension si manquantedlg.set_CheckFileExists(TRUE);

//la boite de dialogue prévient quand le fichier n'existe pasdlg.set_CheckPathExists(TRUE);

//la boite de dialogue prévient quand le chemin n'existe pasdlg.set_CreatePrompt(TRUE);

//autorise l'opérateur à taper un nom de fichier qui n'existe pasdlg.set_OverwritePrompt(TRUE);

//la boite de dialogue prévient si l'opérateur met un nom de fichier qui existe déjà

if(dlg.ShowDialog() == DialogResult.OK){

CString filename=dlg.get_FileName();

//on récupère le nom du fichier sélectionné

if(filename != ""){

m_file = filename;

}

}

}

J'ai essayé de rajouter une déclaration du genre:
System::Void CSave::OnBROWSE(System::Object * sender, System::EventArgs * e) mais il me répond que System n'est pas une classe connue.

Question: est-ce que je peux utiliser SaveFileDialog dans un projet boite de dialogue? Si oui, comment dois-je l'utiliser (include, déclaration, ...)? Si non, avez-vous une idée pour me créer une boite de dialogue équivalente (comment afficher l'organisation du disque dur)?
Je vous remercie par avance de votre aide.

1 réponse

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
25 janv. 2007 à 13:45
Le titre de ta question serait plutot:
"SaveFileDialog en C++ .NET"

Ce qui n'a pas grand chose à voir avec du natif hors une partie de la syntaxe.

Je modifie ce titre.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous