【问题标题】:how to manage navigation pane in Windows fileopen dialog?如何在 Windows 文件打开对话框中管理导航窗格?
【发布时间】:2013-04-10 13:37:44
【问题描述】:

在 vista 和 win7 中可用的标准 OpenFile 对话框允许您添加“应用程序链接”,它显示在对话框左侧导航窗格的顶部。在包含的屏幕截图中,我添加了 2 个文件夹。我正在使用 C++Builder 并且使用 TFavoriteLinkItems 非常简单,我不确定 Visual Studio(或其他)用户会如何做到这一点。

问题是我在折叠文件夹并将窗口滚动到顶部后截取了屏幕截图。在正常情况下,用户甚至不会注意到我添加了这些链接,因为导航窗格将以初始目录为中心,并且库或用户(在本例中为“Marc”)文件夹也可能会展开。

有没有办法以编程方式强制窗格滚动到顶部,或者折叠所有打开的文件夹,“应用程序链接”除外?

【问题讨论】:

    标签: c++ winapi c++builder vcl


    【解决方案1】:

    我找到了答案,而且很简单。

    在 vcl 意义上,TFileOpenDialog 选项包括 HidePinnedPlaces 选项。这会从导航窗格中删除所有内容,除了如上所述使用 FavoriteLinks::add 添加的项目。

    在更面向 Microsoft 的方法中,IFileDialog::SetOptions 方法是查看的地方。此处描述了所有选项: http://msdn.microsoft.com/en-us/library/windows/desktop/bb761832%28v=vs.85%29.aspx.

    您可以使用 shell: 文件夹添加“我的电脑”或其他文件夹,这在您处理完其他所有内容后非常方便。 C++Builder 代码如下所示:

    void TMyForm::AddFolderLinks() {
      TFavoriteLinkItem * link = FileOpenDialog1->FavoriteLinks->Add();
      link->Location = "shell:MyComputerFolder";
      link = FileOpenDialog1->FavoriteLinks->Add();
      link->Location = "shell:Libraries";
      link = FileOpenDialog1->FavoriteLinks->Add();
      link->Location = ExtractFilePath(Application->ExeName);
      link = FileOpenDialog1->FavoriteLinks->Add();
      link->Location = "c:\\projects\\Athabasca";
    }
    

    并产生以下内容,这正是我想要的:

    【讨论】:

    • 还有一件事......以编程方式将 HidePinnedPlaces 选项添加到对话框的语法有点奇怪。我在这里添加它是因为我很难找到它.. FileOpenDialog1->Options
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    • 2013-03-15
    • 2016-01-29
    • 2014-07-09
    • 2016-03-14
    相关资源
    最近更新 更多