我已经在网上搜索并与这件事斗争了一个多小时,但似乎仍然无法让它发挥作用。大多数人在论坛等上看到这里时似乎很满意,但我的仍然不起作用。
我试图强制 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
);
看起来这应该是一个相对简单的任务。 :/
目前,上面的代码仍然显示默认的:桌面文件夹。
除了从特定文件夹开始之外,如果可能的话,我还希望它仅显示该文件夹及以下文件夹,而无法访问父目录。
我在这里缺少什么?
您还可以发送BFFM_SETSELECTION
来自你的消息BrowseCallbackProc
, like:
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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)