Как записать строку из EditControl в текстовый файл в Visual Studio 2008, используя диалоговое окно «Сохранить в..»?

Я пишу свое первое приложение в MFC, и я хотел включить очень простую функцию: включить кнопку «Сохранить в файл», которая при нажатии откроет знакомое диалоговое окно «Сохранить как..» и в конечном итоге сохранит данные в текстовом файле. Я не мог найти, как вызвать это диалоговое окно - может ли кто-нибудь просто указать мне правильный способ сделать это?


person TCSGrad    schedule 24.04.2010    source источник


Ответы (2)


Что вам нужно, это CFileDialog :

CFileDialog d(FALSE);
if(IDOK == d.DoModal())
{
    CString sFileName = dlg.GetPathName();

    // ... Save your text to the file

}

В конструкторе CFileDialog есть множество параметров, которые можно изменить, чтобы повлиять на поведение диалогового окна. Подробности см. в документации MSDN.

person rep_movsd    schedule 24.04.2010
comment
Итак, мне нужно сделать объект CFileDialog членом моего класса, или я могу поместить все объявление и использование в обработчик событий OnBtnClicked()? - person TCSGrad; 25.04.2010
comment
Вы можете просто объявить и использовать его в своем обработчике событий. - person rep_movsd; 25.04.2010
comment
Получил то, что искал: funnotes.net/File-open-dialog -box-using-CFileDialog.php - person TCSGrad; 26.04.2010

Для того, что вы описали, вам, вероятно, следует просто использовать CEditView вместо написания собственного кода. Он предварительно написан, протестирован и т. д.

В большинстве других ситуаций вы должны понимать, что MFC сама обрабатывает детали создания диалогового окна Save As... и тому подобного, поэтому все, что вам обычно нужно сделать, это поместить код в функцию-член Serialize() вашего класса документа для чтения и записи данных вашего документа. Это переданная ссылка на объект CArchive, поэтому все, с чем вам нужно иметь дело, это запись или чтение данных для вашего объекта документа.

person Jerry Coffin    schedule 26.04.2010
comment
Я посмотрел на CEditView, и я думаю, что у него есть много функций, которые я не ищу — у меня есть EditControl в моем диалоговом окне, содержимое которого я хочу сохранить, когда пользователь нажимает кнопку «Сохранить как». Я нашел класс (SaveFileDialog), который потенциально может решить мою проблему, но я не могу найти в Интернете хороший пример, показывающий, как его использовать. У меня нет книги MFC, так что все, что у меня есть, это гугл!! Я сказал вам это, потому что, судя по вашему ответу, вы выглядите как человек, имеющий большой опыт работы с MFC, и, возможно, он может указать мне на такой пример. Спасибо !! - person TCSGrad; 26.04.2010