文件目錄對話框

BROWSEINFO bi; 
CString m_strFilePath;
char dispname[MAX_PATH], path[MAX_PATH]; 
ITEMIDLIST * pidl; 
//定義目錄瀏覽對話框的屬主
bi.hwndOwner = 0;
//確定瀏覽範圍(根目錄)
//只有根目錄及其子目錄下可以瀏覽
//定義爲NULL表示名字空間下皆可用
bi.pidlRoot = NULL;
//用於接收用戶所選目錄的顯示名
//經測試,該項並不包含全路徑名
bi.pszDisplayName = dispname; 
//設置目錄瀏覽對話框的對話框標題
bi.lpszTitle = "請選擇路徑:";
//設置狀態
//BIF_BROWSEINCLUDEFILES
//BIF_RETURNONLYFSDIRS表示只返回目錄,
//BIF_STATUSTEXT表示對話框中有狀態行
//BIF_EDITBOX表示對話框中有編輯框
//BIF_VALIDATE表示客戶按“確認”按鈕時檢查編輯框內容的合法性
bi.ulFlags = BIF_RETURNONLYFSDIRS/*|~BIF_BROWSEINCLUDEFILES|BIF_RETURNONLYFSDIRS|BIF_STATUSTEXT|BIF_EDITBOX|BIF_VALIDATE|~BIF_BROWSEINCLUDEFILES*/;
//設置回調函數
//如果需要設置初始選擇項、顯示所選項的相關信息、讓系統自動校驗用戶輸入
//的合法性,那麼應該使用回調函數;否則可將該項設置爲NULL
bi.lpfn = NULL; 
//設置回調函數的lParam參數
//此處用來傳遞目錄瀏覽對話框的初始選項
bi.lParam = (LPARAM)(LPCTSTR)m_strFilePath; 
//用來接收所選目錄的圖標(系統圖像列表中的序號)
bi.iImage = 0; 
//顯示目錄瀏覽對話框
if (pidl = SHBrowseForFolder(&bi))

  // SHGetFolderPathAndSubDirA(NULL,NULL,NULL,0,NULL,path);
if (SHGetPathFromIDList(pidl,path))
{
m_strFilePath = path;
m_strFilePath +="\\";
GetDlgItem(IDC_EDIT_PATH)->SetWindowText(m_strFilePath);
UpdateData(FALSE);
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章