我用以下代码打开选择目录的公用对话框,每次打开对话框时默认选中的都是“我的电脑”,
怎样修改对话框打开时默认选中的目录节点?BROWSEINFO bi;
LPITEMIDLIST pIDList;
char sFolder[MAX_PATH];// 初始化结构变量
memset(&bi, 0, sizeof(BROWSEINFO));
bi.hwndOwner = m_hWnd;
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.pidlRoot = 0;
bi.lpszTitle = "保存到目录";// 打开选择目录的公共对话框
pIDList = SHBrowseForFolder(&bi);
if (NULL != pIDList && SHGetPathFromIDList(pIDList, sFolder))
{
...
}
怎样修改对话框打开时默认选中的目录节点?BROWSEINFO bi;
LPITEMIDLIST pIDList;
char sFolder[MAX_PATH];// 初始化结构变量
memset(&bi, 0, sizeof(BROWSEINFO));
bi.hwndOwner = m_hWnd;
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.pidlRoot = 0;
bi.lpszTitle = "保存到目录";// 打开选择目录的公共对话框
pIDList = SHBrowseForFolder(&bi);
if (NULL != pIDList && SHGetPathFromIDList(pIDList, sFolder))
{
...
}
解决方案 »
- 调试时在ASSERT(AfxGetThread() == NULL); 中断,求解决
- 关于查找应用程序句柄和关闭程序的一系列问题?
- 文件读取
- 用虚拟光驱安装VC6.0的时候,刚一开始机器就自动重启
- 新手问
- 如果动态来生成ADO的数据源,一直没有解决的一个问题
- 请问那种在Html上“自动填表格”的功能如何实现?
- 菜鸟问菜单id问题???
- 我现在想装installshield,可是我找不到,不知道哪儿能单独下载!!!我的VC++ 6.0里没有奇怪了!
- 一个遍历句柄关闭互斥句柄达到双开游戏的程序,一直出错。注入程序运行这段代码就错
- 高手走过路过不要错过:怎样让本地的IP地址动态变化?
- ::std::vector 和CTypedPtrList发生冲突
CString ss("C:\WINDOWS");
OLECHAR olePath[MAX_PATH];
ULONG chEaten;
ULONG dwAttributes;
HRESULT hr;
LPITEMIDLIST pidl;MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,ss.GetBuffer(0),-1,olePath,MAX_PATH);
ss.ReleaseBuffer();
if (SUCCEEDED(SHGetDesktopFolder(&pDeskSF)))
{
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, ss.GetBuffer(0), -1, olePath, MAX_PATH);
hr = pDeskSF->ParseDisplayName(NULL,NULL,olePath,&chEaten,&pidl,&dwAttributes); // 这里就获取了PIDL
}
http://www.codeguru.com/Cpp/W-D/dislog/dialogforselectingfolders/article.php/c1941