C ++ MFC CFileDialog не сохранит

Я создал программу 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, просто чтобы проверить, нет ли проблем / ошибок.

0

Решение

Диалог сохранения файла называется «диалог сохранения файла», потому что его заголовок гласит «Сохранить файл», и он позволяет вам выбрать только один файл. Это не означает, что он действительно сохраняет файлы. Он просто возвращает вам имя файла, выбранное пользователем. Вы по-прежнему несете ответственность за написание кода, который сохранит ваш файл под этим именем.

2

Другие решения

CFileDialog не сохраняет файл для вас, он только предоставляет диалог для пользователя, чтобы определить, где (и если!) Файл должен быть сохранен. Возвращаемое значение DoModal () следует сравнить с IDOK перед продолжением сохранения. Из функций-членов диалогового окна вы можете получить путь и имя файла, выбранного пользователем. С этим вы можете создать / открыть файл и сохранить ваши данные.

1

По вопросам рекламы [email protected]