【问题标题】:How to catch an exception when opening a file with CFileDialog fails使用 CFileDialog 打开文件失败时如何捕获异常
【发布时间】:2019-01-21 07:00:06
【问题描述】:

当我要打开的一个或多个文件正在/正在被其他进程或应用程序使用或打开时,我需要捕获异常。 我正在使用 MFC 的 CFileDialog's DoModal 打开选定文件的列表。但是,当我在“打开文件对话框”中选择一个文件后单击“打开”时,会出现一个小的弹出对话框,说明所选文件正被另一个应用程序使用。 DoModal 方法仅返回(带有成功或失败代码),即在打开文件对话框关闭之后。所以我不知道在哪里插入代码来检查打开文件对话框时是否无法打开所选文件。

CFileDialog fd (TRUE, NULL, _T("*.pid"), OFN_FILEMUSTEXIST | OFN_HIDEREADONLY);
if (fd.DoModal() == IDOK)
{
    //Get selected filenames 
} 

当我双击选择一个文件或单击 OpenFileDialog 窗口中的打开按钮时,我想插入一个 AfxMessageBox 调用。

【问题讨论】:

    标签: c++ visual-c++ mfc


    【解决方案1】:

    使用虚函数CFileDialog::OnShareViolation

    您也可以删除 OFN_SHAREAWARE 并使用 CFileDialog::OnFileNameOK 自行检查

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-07
      • 2016-12-17
      • 1970-01-01
      • 1970-01-01
      • 2016-05-19
      相关资源
      最近更新 更多