【问题标题】:Display XP Style CFileDialog in Windows 7在 Windows 7 中显示 XP 样式的 CFileDialog
【发布时间】:2011-07-28 08:36:05
【问题描述】:

我想在 Windows 7 中显示CFileDialog,如下图所示。

根据msdn

如果设置了OFN_ENABLETEMPLATE而未设置OFN_EXPLORER标志,则系统使用模板创建一个旧式对话框来替换默认对话框。

但即使这样做了,我得到的还是这样的。

请帮忙!

【问题讨论】:

  • msdn 的链接格式不正确,为什么总是将其返回为文本而不是链接?
  • stackoverflow 不允许超过两个超链接!并且他们不允许图像的用户声誉低于 10。所以我为两个图像使用了超链接,我不得不制作 msdn 链接文本。只有 http:// 部分丢失。
  • 为什么要旧的 windows xp 样式而不是 windows 7 的等效版本?
  • 因为我的客户想要这样 :(
  • @rageshtech,是的,但是我编辑了帖子,然后你又编辑了它。

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


【解决方案1】:

试试这个:

CFileDialog fd(1,0,0,0,0,0,0,FALSE);
fd.m_ofn.lStructSize = sizeof(OPENFILENAME_NT4);
fd.DoModal();

CTOR 的最后一个参数指定 Vista 样式为 false,结构大小为 sizeofed 以反映 NT4 文件对话框。

【讨论】:

    【解决方案2】:

    我不认为你可以。该窗口属于操作系统,不再实现。最接近您可以使用的是旧式对话框。

    您可以尝试通过挂钩窗口来自定义这个,但这并不容易,我不认为它值得。

    【讨论】:

    • 实际上第一张图片是另一个应用程序在 Windows 7 中显示的对话框!我想知道我是否可以像这样从我的应用程序中显示 CFileDialog !请检查这两张图片。
    猜你喜欢
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多