Я создал программу MFC с опцией меню для сохранения файла. Когда я нажимаю на него, он показывает CFileDialog, и я могу выбрать место, где я хочу сохранить свой файл. Когда я нажимаю сохранить в диалоге, он закрывает диалог, но после этого ничего не делает. И это не сохранило мой файл. Что я делаю неправильно?
Вот код
CFileDialog *dlg = new CFileDialog(FALSE, L"dr", NULL, NULL,
L"Drawings (*.dr)|*.dr|"L"All Files||");
bool result = dlg->DoModal();
if(result)
{
MessageBox(0, dlg->GetPathName(), L"Draw", 0);
}
Результат bool, просто чтобы проверить, нет ли проблем / ошибок.
Диалог сохранения файла называется «диалог сохранения файла», потому что его заголовок гласит «Сохранить файл», и он позволяет вам выбрать только один файл. Это не означает, что он действительно сохраняет файлы. Он просто возвращает вам имя файла, выбранное пользователем. Вы по-прежнему несете ответственность за написание кода, который сохранит ваш файл под этим именем.
CFileDialog не сохраняет файл для вас, он только предоставляет диалог для пользователя, чтобы определить, где (и если!) Файл должен быть сохранен. Возвращаемое значение DoModal () следует сравнить с IDOK перед продолжением сохранения. Из функций-членов диалогового окна вы можете получить путь и имя файла, выбранного пользователем. С этим вы можете создать / открыть файл и сохранить ваши данные.