1. 程式人生 > >給SHBrowseForFolder 新增“新建資料夾”按鈕

給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<LPARAM>(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);
}