描述:
请问可不可以不继承CFileDialog,实现从对话框中获得选定的目录,而不是文件路径。
解决方案1:
BROWSEINFO bBinfo;
memset(&bBinfo,0,sizeof(BROWSEINFO)); //定义结构并初始化
bBinfo.hwndOwner=m_hWnd;//设置对话框所有者句柄
char strTmp[255];
bBinfo.lpszTitle="请选择安装路径:";
bBinfo.ulFlags = BIF_RETURNONLYFSDIRS; //设置标志只允许选择目录
LPITEMIDLISTlpDlist;
//用来保存返回信息的IDList,使用SHGetPathFromIDList函数转换为字符串
lpDlist=SHBrowseForFolder(&bBinfo) ; //显示选择对话框
if(lpDlist!=NULL)
{
SHGetPathFromIDList(lpDlist,strTmp);//把项目标识列表转化成目录
TRACE(strTmp);
}
可以
但是要把文件的目录的绝对地址当作输入变量
您可以使用SHBrowseForFolder来选取目录,具体使用请查看MSDN
解决方案4:http://www.codeguru.com/Cpp/W-D/dislog/dialogforselectingfolders/article.php/c2019/