MFC實現開啟 儲存檔案對話方塊和瀏覽資料夾對話方塊

2021-06-04 19:24:03 字數 1514 閱讀 4179

一、開啟、儲存對話方塊

檔案對話方塊屬於通用對話方塊範疇(另外還有顏色,查詢,查詢替換,字型,列印等對話方塊)。

借助mfc現成的類cfiledialog你可以輕易操作檔案對話方塊。

cfiledialog dlg( true, _t( "txt" ), _t( "b.txt" ), ofn_filemustexist | ofn_hidereadonly, _t( "文字|*.txt|所有檔案|*||" ) );

if ( dlg.domodal() == idok )

// 開啟檔案對話方塊,彈出對話方塊選擇路徑儲存檔案 [4/13/2011 shulei]

cstring foldername;

cfiledialog dlg( false, _t( "xls" ), _t( "" ), ofn_overwriteprompt|ofn_hidereadonly, _t( "excel檔案|*.xls|所有檔案|*||" ) );

dlg.m_ofn.lpstrtitle=_t("資料儲存為excel檔案");

if ( dlg.domodal() == idok )

第乙個引數true:開啟檔案對話方塊,false:儲存檔案對話方塊

第二個引數表示要開啟檔案的預設副檔名(儲存檔案是顯得比較重要)

第三個引數表示要開啟的目標檔名,如果未提供擴充套件名將使用第二個引數指定的名稱

第四個引數 ofn_filemustexist表示目標必須存在, ofn_hidereadonly不顯示唯讀檔案,還有些其他引數可用ofn_***自行檢索之

第五個引數表示過濾字串表,按照這個格式"標題|過濾表|標題|過濾表||"

二、瀏覽資料夾對話方塊

開啟乙個資料夾對話方塊沒有現成的mfc類可用,需要借助一類稱為shell操控的api函式。三個步驟:配置對話方塊,開啟對話方塊,獲取返回值(資料夾路徑)。

// 獲取特定資料夾的lpitemidlist,可以將之理解為handle

// 所謂的特定資料夾,你可以用csidl_***來檢索之。

lpitemidlist rootloation;

shgetspecialfolderlocation( null, csidl_desktop, &rootloation );

if ( rootloation == null )

// 配置對話方塊

browseinfo bi;

zeromemory( &bi, sizeof( bi ) );

bi.pidlroot = rootloation; // 資料夾對話方塊之根目錄,不指定的話則為我的電腦

bi.lpsztitle = _t( "對話方塊抬頭" ); // 可以不指定

// bi.ulflags = bif_editbox | bif_returnonlyfsdirs;

// 開啟對話方塊, 有點像domodal

lpitemidlist targetlocation = shbrowseforfolder( &bi );

if ( targetlocation != null )

MFC 實現開啟檔案對話方塊 儲存檔案對話方塊

cfiledialog cfiledialog bool bopenfiledialog,lpctstr lpszdefext null,lpctstr lpszfilename null,dword dwflags ofn hidereadonly ofn overwriteprompt,lpct...

MFC 檔案開啟和儲存對話方塊

開啟影象檔案 cfiledialog picfiledlg true,null,null,ofn hidereadonly ofn overwriteprompt ofn allowmultiselect,jpg jpg jpg 位 件 bmp bmp null 如果需要開啟其他型別的檔案,只需要在...

MFC開啟 儲存檔案對話方塊 CFileDialog

mfc開啟 儲存檔案對話方塊 cfiledialog 2008 03 15 12 02 cfiledialog 檔案選擇對話方塊的使用 首先構造乙個物件並提供相應的引數,建構函式原型如下 cfiledialog cfiledialog bool bopenfiledialog,lpctstr lps...