gpt4 book ai didi

c++ - 强制 SHBrowseForFolder() 显示所需的目录

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:46:01 26 4
gpt4 key购买 nike

我已经在网上搜索并与这个东西抗争了一个多小时,但似乎仍然无法让它工作。当大多数人在论坛等上得到它时,他们似乎很满意,但我的仍然不起作用。我试图强制 SHBrowseForFolder() 函数在我选择的文件夹中启动。

char current[MAX_PATH];
strcpy(current,"C:\\Users");

char outbuf[MAX_PATH];
BROWSEINFO bis;
bis.hwndOwner = NULL;
bis.pidlRoot = NULL;
bis.pszDisplayName = outbuf;
bis.lpszTitle = (LPCSTR)"HERE";
bis.ulFlags = BIF_NEWDIALOGSTYLE|BIF_RETURNONLYFSDIRS;
bis.lpfn = NULL;
bis.lParam = (LPARAM)current;

SHBrowseForFolder(
&bis
);

看起来这应该是一个比较简单的任务。 :/目前,上面的代码仍然显示默认值:Desktop 文件夹。除了从特定文件夹开始,如果可能的话,我还希望它只显示该文件夹及以下文件夹,而不能访问父目录。

我在这里错过了什么?

最佳答案

您还可以从 BrowseCallbackProc 发送一条 BFFM_SETSELECTION 消息,例如:

int FAR PASCAL BrowseNotify(HWND hWnd, UINT iMessage, long wParam, LPARAM lParam)
{ if (iMessage == BFFM_INITIALIZED)
{ SendMessage(hWnd, BFFM_SETSELECTION, 1, (LPARAM) szInitialPathName); // Set initial folder
return 1;
}
return 0;
}

关于c++ - 强制 SHBrowseForFolder() 显示所需的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17471771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com