0

我创建了一个带有保存文件的菜单选项的 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);
}

布尔结果纯粹是为了检查是否没有问题/错误。

4

2 回答 2

2

文件保存对话框被称为“文件保存对话框”,因为它的标题是“保存文件”,它只允许您选择一个文件。这并不意味着它实际上会保存任何文件。它只是将用户选择的文件名返回给您。您仍然负责编写将使用此文件名保存文件的代码。

于 2015-02-11T14:29:35.820 回答
1

CFileDialog 不会为您保存文件,它只为您提供一个对话框,供用户确定文件应该保存在哪里(以及是否!)。在继续保存之前,应将 DoModal() 的返回值与 IDOK 进行比较。从对话框的成员函数中,您可以获得用户选择的路径和文件名。有了它,您可以创建/打开文件并保存数据。

于 2015-02-11T14:31:04.713 回答