1.単一のファイル・パスを読みます
1 無効化()。 2 3 のCFileDialog DLG(、NULL、NULL、TRUE OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_READONLY、 4 TEXT(" サポートされているタイプ(* .JPG; * PNG、GIF *; * BMP; ...)| * .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 IF(dlg.DoModal()== IDOK) 。11 { 12は m_Path = dlg.GetPathName(); 13である m_isOpen = TRUE; 14 にupdateData(FALSE); 15 } 16 他 。17 リターン; 18れます // 左の画像は、表示画像制御 19 のchar *の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 * BUF = 新しいTCHAR [MAXFILE]。 5 のmemset(BUF、0、はsizeof(TCHAR)* MAXFILE)。 6 dlg.m_ofn.lpstrFile = BUF。 7 8 INTiReturn = dlg.DoModal()。 9 もし(iReturn == IDCANCEL) 10 { 11 リターン。 12 } 13 の位置pos = dlg.GetStartPosition()。 14 ながら(!POS = NULL) 15 { 16 fileDict.push_back(dlg.GetNextPathName(POS))。 17 } 18 19 削除 [] BUFします。
}
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(&BI)。 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インターフェース\ nを取得できません" )); 26 } 27 28 pMalloc-> フリー(pItemIDList)、 29 であれば(pMalloc) 30 pMalloc-> リリース(); 31 にupdateData(FALSE); 32 }