給SHBrowseForFolder 新增“新建資料夾”按鈕
阿新 • • 發佈:2019-01-28
一般情況下,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); }