1. Прочитайте один путь к файлу
1 Invalidate (); 2 3 CFileDialog DLG (TRUE, NULL, NULL, OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_READONLY, 4 TEXT ( " Поддерживаемые типы (* .jpg;.. * Детские; * GIF; * ВМР;. ...) | * .jpg; * . .png, * GIF, * . BMP | Tiff (.. * размолвка; * TIF) | * .tiff, * . TIF | Все файлы (*. *) | * ||. " ), NULL); 5 dlg.m_ofn.nFilterIndex = 1 ; 6 dlg.m_ofn.hwndOwner = m_hWnd; 7 dlg.m_ofn.lStructSize = SizeOf (OPENFILENAME); 8 dlg.m_ofn.lpstrTitle = TEXT ( " Открытие изображения ... \ 0 " ); 9 = Dlg.m_ofn.nMaxFile MAX_PATH; 10 ПЧ (dlg.DoModal () == IDOK) . 11 { 12 m_Path = dlg.GetPathName (); 13 m_isOpen = TRUE; 14 UpdateData (FALSE); 15 } 16 остальное . 17 возврата ; 18 // фото слева управляет отображением изображения 19 обугленного * S_PATH; 20 USES_CONVERSION; 21 S_PATH = T2A (m_path);
2. прочитать несколько имя файла
1 вектор <CString> fileDict;
CFileDialog DLG (TRUE, _T ( " * " ), NULL, OFN_ALLOWMULTISELECT | OFN_FILEMUSTEXIST, _T ( " Файл所有文件(*) | * ||.. " ), NULL); 2 типа DWORD MAXFILE = 500 * MAX_PATH; // 最多打开500个文件 3 dlg.m_ofn.nMaxFile = MAXFILE; 4 TCHAR * ЬиЕ = новый TCHAR [MAXFILE]; 5 MemSet (BUF, 0 , SizeOf (TCHAR) * MAXFILE); 6 dlg.m_ofn.lpstrFile = ЬиЕ; 7 8 INTiReturn = dlg.DoModal (); 9 , если (iReturn == IDCANCEL) 10 { 11 возврата ; 12 } 13 ПОЛОЖЕНИЕ поз = dlg.GetStartPosition (); 14 в то время как (позы! = NULL) 15 { 16 fileDict.push_back (dlg.GetNextPathName (позы)); 17 } 18 19 удалить [] БУФЫ;
}
3. Выберите путь к папке
1 CString m_saveFilePath; 2 TCHAR szPath [_MAX_PATH]; 3 BROWSEINFO би; 4 bi.hwndOwner = GetSafeHwnd (); 5 bi.pidlRoot = NULL; 6 bi.lpszTitle = _T ( " 请选择图片路径" ); 7 bi.pszDisplayName = szPath; 8 bi.ulFlags = BIF_RETURNONLYFSDIRS; 9 bi.lpfn = NULL; 10 bi.lParam = NULL; 11 12 LPITEMIDLIST pItemIDList = SHBrowseForFolder (& би); 13 , если(pItemIDList) 14 { 15 , если (SHGetPathFromIDList (pItemIDList, szPath)) 16 { 17 m_saveFilePath = szPath; 18 m_saveFilePath = m_saveFilePath + _T ( " \\ " ); 19 } 20 21 // Использование IMalloc интерфейс для предотвращения утечки памяти 22 IMalloc * pMalloc; 23 , если (SHGetMalloc (& pMalloc)! = NOERROR) 24 { 25 TRACE (_T ( " Не удается получить IMalloc интерфейс \ п" )); 26 } 27 28 pMalloc-> Свободное (pItemIDList); 29 , если (pMalloc) 30 pMalloc-> Release (); 31 UpdateData (FALSE); 32 }