我們在用“browseinfo”產生的瀏覽檔案夾的對話方塊中發現沒有“建立檔案夾”這一個項目。而我的程式中需要在這個時候先建立新的檔案夾在選擇儲存到剛剛建立的檔案夾下。當然,你也可以先到指定目錄下建立完,在從這裡瀏覽選定。可是畢竟你還得退回到盤符,進去你想建立檔案夾的地方,是比較麻煩了。如果有像儲存檔案夾那樣裡面可以隨時建立多方便啊。於是為了個人需求還算是研究了一下,以下代碼就可以派上用場了:
#define BIF_NEWDIALOGSTYLE 0x0040
#define BIF_USENEWUI (BIF_NEWDIALOGSTYLE | BIF_EDITBOX)
void SelectFolder(HWND hWnd,CString& strSelectPath)
{
BROWSEINFO bi;
char FileName[MAX_PATH];
ZeroMemory(&bi,sizeof(BROWSEINFO));
bi.hwndOwner = hWnd;
bi.pszDisplayName = FileName;
bi.lpszTitle="Select Folder";
bi.ulFlags= BIF_USENEWUI;
LPITEMIDLIST idl=SHBrowseForFolder(&bi);
if(idl==NULL)
return;
SHGetPathFromIDList(idl,FileName);
}
其中這個就是那句可以添加新件檔案夾選項的:
#define BIF_USENEWUI (BIF_NEWDIALOGSTYLE | BIF_EDITBOX)
原先只有BIF_NEWDIALOGSTYLE,自己定義一個宏,把BIFEDITBOX 與上就ok。不妨自己試一試。
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/mafeichao/archive/2008/08/06/2779017.aspx