重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章给大家介绍使用C++怎么编写一个打开选择文件夹对话框选择目录功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
为嘉祥等地区用户提供了全套网页设计制作服务,及嘉祥网站建设行业解决方案。主营业务为网站制作、网站设计、嘉祥网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!#ifdef WIN32 #include#endif
// 选择目录 void CustomInstalWndViewCtrl::OnSigBtnSelectInstallDir() { BROWSEINFO bi; 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; LPITEMIDLIST pidl = SHBrowseForFolder(&bi);//调用选择对话框 if (pidl == NULL) { std::cout << "没有选择目录" << std::endl; return; } TCHAR strFolder[MAX_PATH]; SHGetPathFromIDList(pidl, strFolder); std::string sFolder = StringUtil::WStringToString(strFolder); }
补充:c++ MFC选择文件夹
void openDir(){ //选择文件夹 string _Path,root; TCHAR szDir[MAX_PATH]; BROWSEINFO bi; 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)) { int length = WideCharToMultiByte(CP_ACP, 0, szDir, -1, NULL, 0, NULL, NULL); char ch[] = ""; WideCharToMultiByte(CP_ACP, 0, szDir, -1, ch, length, NULL, NULL); root = string(ch); } }
关于使用C++怎么编写一个打开选择文件夹对话框选择目录功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。