vista 和 win7 中可用的标准打开文件对话框允许您添加显示在对话框左侧导航 Pane 顶部的“应用程序链接”。在随附的屏幕截图中,我添加了 2 个文件夹。我正在使用 C++Builder,它使用 TFavoriteLinkItems 非常简单,我不确定 Visual Studio(或其他)用户会怎么做。
问题是我在折叠文件夹并将窗口滚动到顶部后截取了屏幕截图。在正常情况下,用户甚至不会注意到我添加了这些链接,因为导航 Pane 将以初始目录为中心,并且库或用户(在本例中为“Marc”)文件夹也可能会展开。
有没有办法以编程方式强制将 Pane 滚动到顶部,或者折叠所有打开的文件夹,“应用程序链接”除外?
最佳答案
我找到了答案,而且非常简单。
在 vcl 意义上,TFileOpenDialog 选项包括一个用于 HidePinnedPlaces 的选项。这将从导航 Pane 中删除所有内容,但使用 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";
}
并产生以下内容,这正是我想要的:
关于c++ - 如何管理 Windows 文件打开对话框中的导航 Pane ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16066011/