找个文件夹选择对话框

屎带芬 2009-02-10 10:06:15
类似于安装驱动程序时查找驱动程序的文件夹选择对话框!
即:当文件夹下有指定的文件名(或扩展名)时,【确定】按钮才enable,否则disabled
请问windows下有没有提供相应的类。
如果没有提供,怎么才能方便做到!
谢谢!
...全文
140 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
stavck 2009-02-10
  • 打赏
  • 举报
回复
文件夹浏览对话框类
http://blog.csdn.net/stavck/archive/2009/02/10/3873142.aspx
cnzdgs 2009-02-10
  • 打赏
  • 举报
回复
用SHBrowseForFolder函数,自己给一个回调函数在BFFM_SELCHANGED时处理。
liugang_12026168 2009-02-10
  • 打赏
  • 举报
回复
CFileDialog fileDlg(FALSE);
fileDlg.m_ofn.lpstrTitle="图片保存";
fileDlg.m_ofn.lpstrFilter="BMG Img(*.bmg)\0*.bmg\0PNG Img(*.png)\0*.png\0JPEG Img(*.jpeg)\0*.jpeg\0GIF Img(*.gif)\0*.gif\0\0";
fileDlg.m_ofn.lpstrDefExt="bmg";
一条晚起的虫 2009-02-10
  • 打赏
  • 举报
回复
CFileDialog
lwx300 2009-02-10
  • 打赏
  • 举报
回复
可以使用 CFileDialog,并设置 OFN_FILEMUSTEXIST。

	CFileDialog opendlg(TRUE, NULL, _T("FileName.inf"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_FILEMUSTEXIST, _T("INF文件(*.inf)|*.inf||"));
if (opendlg.DoModal() == IDOK)
{
CString strPath = opendlg.GetPathName();
}

allenhiman 2009-02-10
  • 打赏
  • 举报
回复
不知道有啥好办法,不过用findfile循环查询话,在禁用启用按钮肯定是可行的
孤客天涯 2009-02-10
  • 打赏
  • 举报
回复
BROWSEINFO bi;
char buffer[MAX_PATH];
ZeroMemory(buffer, MAX_PATH);
bi.hwndOwner =GetSafeHwnd();
bi.pidlRoot =NULL;
//bi.pszDisplayName =LPWSTR(buffer);//NULL;
bi.pszDisplayName = buffer;//NULL;
bi.lpszTitle = NULL;
bi.ulFlags =BIF_BROWSEFORCOMPUTER && BIF_RETURNONLYFSDIRS;
bi.lpfn =NULL;
bi.lParam =0;//NULL;
bi.iImage = 0;

LPITEMIDLIST pidl = NULL;
BOOL bSuccess=FALSE;

if(pidl = SHBrowseForFolder(&bi))
{
if(pidl != NULL)
{
char lpszPath[MAX_PATH];
ZeroMemory(lpszPath, MAX_PATH);

//if(::SHGetPathFromIDList(pidl,(LPWSTR)lpszPath)) //取得文件夹名
if(::SHGetPathFromIDList(pidl,lpszPath)) //取得文件夹名
{
}
}
}
路人乙2019 2009-02-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wyquan101 的回复:]
CFileDialog
指定文件类型,应该就可以了吧。
[/Quote]对的
wyquan101 2009-02-10
  • 打赏
  • 举报
回复
CFileDialog
指定文件类型,应该就可以了吧。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧