1

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

文件打开对话框

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

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

4

1 回答 1

2

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

在 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";
}

并产生以下内容,这正是我想要的: 改进的打开对话框

于 2013-04-18T03:50:35.607 回答