vs2010MFC選擇檔案對話方塊,選擇目錄對話方塊
阿新 • • 發佈:2019-02-06
選擇檔案對話方塊:
第四個引數 dwFlags為對話方塊風格,一般為OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, 即隱藏只讀選項和覆蓋已有檔案前提示。
TCHAR szFilter[] = _T("jpg(*.jpg)|*.jpg|bmp(*.bmp)|*.bmp"); //可供選擇的字尾 // 構造儲存檔案對話方塊 //第1個引數false是儲存檔案,true是開啟檔案。第2個引數是預設字尾,第3個引數是預設檔名 CFileDialog fileDlg(FALSE, _T("jpg"), _T("my"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter, this); CString strFilePath; //檔案路徑 // 顯示儲存檔案對話方塊 if (IDOK == fileDlg.DoModal()) { // 如果點選了檔案對話方塊上的“儲存”按鈕,則將選擇的檔案路徑顯示到編輯框裡 strFilePath = fileDlg.GetPathName(); SetDlgItemText(IDC_EDIT1, strFilePath); }
選擇目錄對話方塊:
char szBuffer[_MAX_PATH]; BROWSEINFO browseInfo; browseInfo.hwndOwner=this->m_hWnd; browseInfo.pidlRoot=NULL; browseInfo.pszDisplayName=NULL; browseInfo.lpszTitle="請選擇影象儲存路徑"; browseInfo.ulFlags=BIF_RETURNFSANCESTORS|BIF_RETURNONLYFSDIRS; browseInfo.lpfn=NULL; browseInfo.lParam=0; LPITEMIDLIST lpItemIDList; //CString strOpenPath; if((lpItemIDList=::SHBrowseForFolder(&browseInfo))!=NULL) { if(::SHGetPathFromIDList(lpItemIDList,szBuffer)) { if(szBuffer[0]=='\0') { AfxMessageBox("Fail to get directory",MB_ICONSTOP|MB_OK); return; } strSavePath=szBuffer;//儲存的路徑 } else { AfxMessageBox("Fail to get directory!",MB_ICONSTOP|MB_OK); return; } }