Windows--MFC選擇文件對話框和選擇文件夾對話框


選擇單個文件對話框:

1 CString strFile = _T("");
2 
3 CFileDialog    dlgFile(TRUE, NULL, NULL, OFN_HIDEREADONLY, _T("Describe Files (*.jpg)|*.jpg|All Files (*.*)|*.*||"), NULL);
4 
5 if (dlgFile.DoModal())
6 {
7      strFile = dlgFile.GetPathName();
8 }

選擇多個文件對話框

 1 void CBugReportDlg::SelectFiles( vector<CString>& all_sel_files )
 2 {
 3     CFileDialog dlg(TRUE, _T("*.jpg"), NULL, OFN_ALLOWMULTISELECT|OFN_HIDEREADONLY | OFN_FILEMUSTEXIST, _T("Image Files(*.jpg)|*.jpg|"), NULL); 
 4     dlg.m_ofn.lpstrTitle = _T("選擇圖片"); 
 5     CString filename; 
 6     if(dlg.DoModal() == IDOK) 
 7     { 
 8         POSITION fileNamesPosition = dlg.GetStartPosition(); 
 9         while(fileNamesPosition != NULL) 
10         { 
11             filename = dlg.GetNextPathName(fileNamesPosition); 
12             all_sel_files.push_back(filename);
13         }   
14     } 
15 
16 }

選擇文件夾

 1 CString CBugReportDlg::SelFilePath()
 2 {
 3     TCHAR           szFolderPath[MAX_PATH] = {0};  
 4     CString         strFolderPath = TEXT("");  
 5 
 6     BROWSEINFO      sInfo;  
 7     ::ZeroMemory(&sInfo, sizeof(BROWSEINFO));  
 8     sInfo.pidlRoot   = 0;  
 9     sInfo.lpszTitle   = _T("請選擇處理結果存儲路徑");  
10     sInfo.ulFlags   = BIF_RETURNONLYFSDIRS|BIF_EDITBOX|BIF_DONTGOBELOWDOMAIN;  
11     sInfo.lpfn     = NULL;  
12 
13     // 顯示文件夾選擇對話框  
14     LPITEMIDLIST lpidlBrowse = ::SHBrowseForFolder(&sInfo);   
15     if (lpidlBrowse != NULL)  
16     {  
17         // 取得文件夾名  
18         if (::SHGetPathFromIDList(lpidlBrowse,szFolderPath))    
19         {  
20             strFolderPath = szFolderPath;  
21         }  
22     }  
23     if(lpidlBrowse != NULL)  
24     {  
25         ::CoTaskMemFree(lpidlBrowse);  
26     }  
27 
28     return strFolderPath;  
29 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM