Windows XP、Windows Vista 和 Windows 7 上的不同文件打开对话框

发布于 2024-11-08 22:17:09 字数 375 浏览 0 评论 0原文

我想开发一个适用于所有三个版本的 Windows XP、Vista 和 7 的应用程序。该应用程序允许人们选择要打开的文件,并允许他们在某些操作后保存文件。 Windows 的三个版本中的每一个都有不同样式的文件打开对话框。虽然 XP 使用带有 OPENFILENAME 结构的 GetOpenFileName,但建议我们在 Vista 和 Windows 7 中使用“通用文件对话框”。我可以按照建议的样式获取文件对话框,以适用于每个不同版本的操作系统。但是,我想确保我的应用程序在每个版本上打开不同样式的对话框。我不想为不同版本的 Windows 构建单独的二进制文件。

是否可以将此逻辑内置于应用程序中,即允许其访问基于应用程序运行的操作系统的本机打开文件对话框。

谢谢,

阿比吉特

I want to develop an application that works on all three versions of Windows XP, Vista and 7. The application allows people to select files to open and allows them to save the files after some operations. Each of the three versions of Windows has a different style of File open dialog boxes. While XP uses GetOpenFileName with OPENFILENAME structure, it is suggested that we use a "Common File Dialog" with Vista and Windows 7. I can get the file dialog in the suggested style to work for each different version of the OS. However, I would like to make sure that my application opens different styles of dialog box on each version. I do not want to build separate binary for different versions of Windows.

Is it possible to have this logic built-in the application i.e. to allow it to access native open file dialog based on which OS the application is being run.

Thanks,

Abhijit

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

攀登最高峰 2024-11-15 22:17:09

您必须执行类似

if (isVista())
{
    //Use IFileDialog
}
else
{
    //Use GetOpenFileName
}

“注意:

如果您要自定义对话框,则不能”的操作;您将必须使用旧版本。

尝试延迟加载 DLL:

You're going to have to do something like

if (isVista())
{
    //Use IFileDialog
}
else
{
    //Use GetOpenFileName
}

Note:

You can't do this if you'll be customizing the dialog; you'll have to use the old version.

Try delay-loading the DLL:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文