当我要打开的文件被其他进程或应用程序使用或打开时,我需要捕获一个异常。
我正在使用MFC的CFileDialog's DoModal
打开所选文件的列表。但是,当我在“打开文件”对话框中选择一个文件后单击“打开”时,会出现一个小的弹出对话框,指出所选的文件正在由另一个应用程序使用。 DoModal
方法仅返回(带有成功或失败代码),即在“打开文件”对话框关闭后返回。因此,我不知道在打开文件对话框打开后在哪里插入代码来检查是否无法打开所选文件。
CFileDialog fd (TRUE, NULL, _T("*.pid"), OFN_FILEMUSTEXIST | OFN_HIDEREADONLY);
if (fd.DoModal() == IDOK)
{
//Get selected filenames
}
当我双击选择一个文件或在OpenFileDialog窗口中单击“打开”按钮时,我想插入一个AfxMessageBox
呼叫。
答案 0 :(得分:3)
使用虚拟功能CFileDialog::OnShareViolation。
您还可以删除OFN_SHAREAWARE
并使用CFileDialog::OnFileNameOK
进行检查