C++ 打开选择文件夹对话框选择目录的操作
需要添加头文件:
#ifdefWIN32 #include#endif
调用文件对话框选择目录:
//选择目录
voidCustomInstalWndViewCtrl::OnSigBtnSelectInstallDir()
{
BROWSEINFObi;
bi.hwndOwner=NULL;
bi.pidlRoot=CSIDL_DESKTOP;//文件夹的根目录,此处为桌面
bi.pszDisplayName=NULL;
bi.lpszTitle=NULL;//显示位于对话框左上部的提示信息
bi.ulFlags=BIF_DONTGOBELOWDOMAIN|BIF_RETURNONLYFSDIRS|BIF_NEWDIALOGSTYLE;//有新建文件夹按钮
bi.lpfn=NULL;
bi.iImage=0;
LPITEMIDLISTpidl=SHBrowseForFolder(&bi);//调用选择对话框
if(pidl==NULL)
{
std::cout<<"没有选择目录"<
补充:c++MFC选择文件夹
voidopenDir(){
//选择文件夹
string_Path,root;
TCHARszDir[MAX_PATH];
BROWSEINFObi;
ITEMIDLIST*pidl;
bi.hwndOwner=this->m_hWnd;
bi.pidlRoot=NULL;
bi.pszDisplayName=szDir;//这个是输出缓冲区
bi.lpszTitle=_T("文件夹:");//标题
bi.ulFlags=BIF_NEWDIALOGSTYLE;//使用新的界面,在win7中效果较好//BIF_RETURNONLYFSDIRS;
bi.lpfn=NULL;
bi.lParam=0;
bi.iImage=0;
pidl=SHBrowseForFolder(&bi);//弹出对话框
if(pidl==NULL)//点了取消,或者选择了无效的文件夹则返回NULL
return;
if(SHGetPathFromIDList(pidl,szDir)){
intlength=WideCharToMultiByte(CP_ACP,0,szDir,-1,NULL,0,NULL,NULL);
charch[]="";
WideCharToMultiByte(CP_ACP,0,szDir,-1,ch,length,NULL,NULL);
root=string(ch);
}
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。