MFC dialogue Enregistrer le fichier

Je suis en train d'écrire un MFC C++ application qui a un bouton Enregistrer sous pour enregistrer un .txt fichier sur le disque. Avec elle, je suis en train d'ajouter un supplément de vérification pour le remplacement de fichiers (si un fichier avec le même nom de fichier existe, alors il doit demander à l'utilisateur s'il veut écraser l'ancien fichier ou pas). J'ai essayé avec le code ci-dessous, mais ça ne fonctionne pas vraiment. Quand je clique Pas sur la MessageBox, il doit rouvrir le Enregistrer en tant Que boîte de dialogue de fichier, mais au lieu de cela, il me donne deux erreurs: la première est Debug assertion failed, et le second est Encountered an improper argument. Comment dois-je faire mieux? C'est le code:

char strFilter[] = { "Text Files (*.txt)|*.txt|" }; 

    CFileDialog FileDlg(FALSE, CString(".txt"), NULL, 0, CString(strFilter)); 

    while(true)
    {
        if( FileDlg.DoModal() == IDOK ) //this is the line which gives the errors
        {
            agendaName = FileDlg.GetFileName(); //filename
            agendaPath = FileDlg.GetFolderPath(); //filepath (folders)

            if(model->agendaExists(CSToString(agendaPath+TEXT("\\")+agendaName))) //there is another file called the same way
            {
                if(MessageBox(TEXT("A file with the specified name already exists. Overwrite?"), TEXT("File exists"), MB_YESNO) != 6) //user clicked NO (do not overwrite file)
                {
                    continue;
                }

            }

            model->sendToFile(CSToString(agendaPath+TEXT("\\")+agendaName));  //the file is unique so the agenda named agendaName found at path agendaPath is saved
            return;
        }
    }

Il convient de mentionner que les erreurs se produisent sur la ligne 7 et seulement sur la deuxième boucle à travers la while.

OriginalL'auteur Adrian Marinica | 2011-05-12