J'écris ma première application dans MFC, et je cherchais à inclure une fonctionnalité très simple: Inclure un bouton "Enregistrer dans un fichier" qui, après avoir cliqué, fera apparaître la boîte de dialogue familière "Enregistrer sous .." et sera finalement enregistrer les données dans un fichier texte. Je ne pouvais pas trouver comment invoquer cette boîte de dialogue - quelqu'un peut-il me pointer sur la bonne voie pour le faire?Comment écrire une chaîne depuis EditControl vers un fichier texte dans Visual Studio 2008 en utilisant la boîte de dialogue "Save To .."?
Répondre
Qu'est-ce que vous avez besoin est CFileDialog:
CFileDialog d(FALSE);
if(IDOK == d.DoModal())
{
CString sFileName = dlg.GetPathName();
// ... Save your text to the file
}
Il y a beaucoup de paramètres dans le constructeur CFileDialog que vous pouvez changer d'affecter la façon dont se comporte la boîte de dialogue, consultez la documentation MSDN pour plus de détails.
Pour ce que vous avez décrit, vous devriez probablement utiliser un CEditView
au lieu d'écrire votre propre code. Pour la plupart des autres situations, vous devez vous rendre compte que MFC gère normalement les détails de la création de la boîte de dialogue Save As...
et ainsi de suite, donc tout ce que vous avez normalement à faire est de mettre du code dans votre classe de document. 'Serialize()
fonction de membre pour lire et écrire les données de votre document. Cela a passé une référence à CArchive
objet, donc tout ce que vous avez à faire est d'écrire ou de lire les données pour votre objet document.
J'ai regardé CEditView, et je suppose qu'il a beaucoup de fonctionnalités que je ne suis pas recherche - J'ai un EditControl dans ma boîte de dialogue, dont le contenu que je veux enregistrer lorsque l'utilisateur clique sur le bouton "Enregistrer sous". J'ai trouvé une classe (SaveFileDialog) qui pourrait potentiellement résoudre mon problème, mais je ne suis pas capable de trouver un bon exemple sur le web qui montre comment l'utiliser. Je n'ai pas de livre MFC, donc google c'est tout ce que j'ai !! Je vous l'ai dit depuis votre réponse, vous avez l'air très expérimenté avec MFC, et pourrait peut-être me montrer un tel exemple. Merci !! – TCSGrad
Alors, dois-je créer un objet CFileDialog en tant que membre de ma classe, ou puis-je mettre toute la déclaration et l'utilisation sous le gestionnaire d'événements OnBtnClicked()? – TCSGrad
Vous pouvez simplement le déclarer et l'utiliser dans votre gestionnaire d'événements. –
J'ai obtenu ce que je cherchais: http://funnotes.net/File-open-dialog-box-using-CFileDialog.php – TCSGrad