给SHBrowseForFolder 添加“新建文件夹”按钮

一般情况下,SHBrowseForFolder的文件夹浏览没有“新建文件夹”按钮,让其支持“新建文件夹”按钮其实很简单,只需要给BROWSEINFO的ulFlags设置上0x0040即可:

void CMainFrame::OnBrowseforfolder() 
{
	// TODO: Add your command handler code here
	BROWSEINFO bi;
	bi.hwndOwner = m_hWnd;
	bi.iImage = NULL;
	bi.lParam = reinterpret_cast(this);
	bi.lpfn = BrowseCallbackProc;
	bi.lpszTitle = "选择下载目录";
	bi.pidlRoot = NULL;
	char disName[128] = "";
	bi.pszDisplayName = disName;
	bi.ulFlags = 0x0040 | BIF_RETURNONLYFSDIRS | BIF_EDITBOX; // 添加0x0040后得到的文件夹浏览将会存在“新建文件夹”按钮
	LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
	if (pidl == NULL)
	{
		return;
	}
	char szPath[MAX_PATH] = "";
	SHGetPathFromIDList(pidl, szPath);
}

给SHBrowseForFolder 添加“新建文件夹”按钮_第1张图片

你可能感兴趣的:(VC/MFC)