MFC開啟資料夾選擇對話方塊
阿新 • • 發佈:2019-02-10
函式名:OnBnClickedButtonDir
函式功能:通過點選按鈕,彈出開啟資料夾選擇對話方塊
引數:無
返回值:無
額外說明:
ulFlags標誌位說明:
BIF_BROWSEFORCOMPUTER:返回計算機名。除非使用者選中瀏覽器中的一個計算機名,否則該對話方塊中的“OK”按鈕為灰色。
BIF_BROWSEFORPRINTER:返回印表機名。除非選中一個印表機名,否則“OK”按鈕為灰色。
BIF_BROWSEINCLUDEFILES:瀏覽器將顯示目錄,同時也顯示檔案。
BIF_DONTGOBELOWDOMAIN:在樹形視窗中,不包含域名底下的網路目錄結構。
BIF_EDITBOX:瀏覽對話方塊中包含一個編輯框,在該編輯框中使用者可以輸入選中項的名字。
BIF_RETURNFSANCESTORS:返回檔案系統的一個節點。僅僅當選中的是有意義的節點時,“OK”按鈕才可以使用。
BIF_RETURNONLYFSDIRS:僅僅返回檔案系統的目錄。例如:在瀏覽資料夾對話方塊中,當選中任意一個目錄時,該“OK”按鈕可用,而當選中“我的電腦”或“網路上的芳鄰”等非有意義的節點時,“OK”按鈕為灰色。
BIF_STATUSTEXT:在對話方塊中包含一個狀態區域。通過給對話方塊傳送訊息使回撥函式設定狀態文字。
BIF_VALIDATE:當沒有BIF_EDITBOX標誌位時,該標誌位被忽略。如果使用者在編輯框中輸入的名字非法,瀏覽對話方塊將傳送BFFM_VALIDATEFAILED訊息給回撥函式。
作者:weekdawn
void CMD5TestDlg::OnBnClickedButtonDir() { // TODO: 在此新增控制元件通知處理程式程式碼 //選擇輸出路徑 TCHAR szDir[100]; BROWSEINFO bi; ITEMIDLIST *pidl; bi.hwndOwner = this->m_hWnd; bi.pidlRoot = NULL; bi.pszDisplayName = szDir;//輸出緩衝區 bi.lpszTitle = _T("請選擇資料夾:"); //選擇介面的標題 bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE;//新的介面 bi.lpfn = NULL; bi.lParam = 0; bi.iImage = 0; pidl = SHBrowseForFolder(&bi);//彈出對話方塊 if (pidl == NULL)//點了取消,或者選擇了無效的資料夾則返回NULL return; if(SHGetPathFromIDList(pidl, szDir)) { SetDlgItemText(IDC_EDIT_DIR,szDir);//szDir就是選擇的資料夾路徑,IDC_EDIT_DIR是edit控制元件的ID } }