CFileDialog 类中没有直接提供 GetIFileOpenDialog 这个公共方法。然而,你可以通过获取对话框的底层 IFileOpenDialog 接口来进行更高级的自定义和操作。

以下是一种方式,使用 GetInterfacePtr 方法获取 IFileOpenDialog 接口的示例:
CFileDialog fileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("All Files (*.*)|*.*||"));

IFileOpenDialog *pFileOpenDialog = NULL;
HRESULT hr = fileDlg.GetInterfacePtr(&pFileOpenDialog);
if (SUCCEEDED(hr)) {
    // 在这里使用 pFileOpenDialog 进行更高级的操作

    // 例如,可以调用 IFileOpenDialog 的其他方法
    // pFileOpenDialog->SomeMethod();

    pFileOpenDialog->Release();  // 不要忘记释放接口指针
}

if (fileDlg.DoModal() == IDOK) {
    // 处理用户的选择
}

这个示例演示了如何获取 IFileOpenDialog 接口的指针,从而允许你使用更多高级的方法来自定义文件对话框的行为。请确保在使用完接口后调用 Release 方法释放资源。

要进行更多的高级自定义,你可能需要查阅 Windows SDK 和 MFC 文档,以了解 IFileOpenDialog 接口的详细信息。


转载请注明出处:http://www.zyzy.cn/article/detail/17742/MFC/CFileDialog