CFileDialog檔案選擇對話方塊使用說明

2021-05-22 10:00:23 字數 2513 閱讀 8921

cfiledialog檔案選擇對話方塊的使用:首先構造乙個物件並提供相應的引數,然後判斷選擇的是確定按鈕idok ,還是取消按鈕idcancel 。

建構函式原型如下:

cfiledialog::cfiledialog( bool bopenfiledialog,

lpctstr lpszdefext = null,

lpctstr lpszfilename = null,

dword dwflags = ofn_hidereadonly | ofn_overwriteprompt,

lpctstr lpszfilter = null,

cwnd* pparentwnd = null );

引數意義如下:

1 bopenfiledialog 為

true則顯示

開啟對話方塊,為

false則顯示

儲存對話檔案對話方塊。

2 lpszdefext 指定預設的副檔名。

3 lpszfilename 指定預設的檔名。

4 dwflags 指明一些特定風格。 有

ofn_hidereadonly |

ofn_overwriteprompt |

ofn_allowmultiselect

5 lpszfilter 是最重要的乙個引數,它指明可供選擇的檔案型別和相應的副檔名。引數格式如:

"chart files (*.xlc)|*.xlc|worksheet files (*.xls)|*.xls|data files (*.xlc;*.xls)|*.xlc; *.xls|all files (*.*)|*.*||";檔案型別說明和副檔名間用 | 分隔,同種型別檔案的副檔名間可以用 ; 分割,每種檔案型別間用 | 分隔,末尾用 || 指明。

例如"(*.bmp)|*.bmp|(*.gif)|*.gif|所有檔案(*.*)|*.*||"

6 pparentwnd 為父視窗指標。也可用 afxgetmainwnd()可以得到

建立檔案對話方塊可以使用domodal(),domodal()返回的是idok和idcancel ,在返回後可以利用下面的函式得到使用者選擇:

cfiledialog物件的成員函式

1 cstring cfiledialog::getpathname( ) 得到完整的檔名,包括目錄名和副檔名如:c: est est1.txt

2 cstring cfiledialog::getfilename( ) 得到完整的檔名,包括副檔名如:test1.txt

3 cstring cfiledialog::getextname( ) 得到完整的副檔名,如:txt

4 cstring cfiledialog::getfiletitle ( ) 得到完整的檔名,不包括目錄名和副檔名如:test1

5 position cfiledialog::getstartposition( ) 對於選擇了多個檔案的情況得到第乙個檔案位置。

6 cstring cfiledialog::getnextpathname( position& pos ) 對於選擇了多個檔案的情況得到下乙個檔案位置,並同時返回當前檔名。但必須已經呼叫過position cfiledialog::getstartposition( )來得到最初的position變數。

如何進行檔案操作

取得檔名

假如選擇的檔案是c:windowstest.exe

則:(1)getpathname();取檔名全稱,包括完整路徑。取回c:windowstest.exe

(2)getfiletitle();取檔案全名:test.exe

(3)getfilename();取回test

(4)getfileext();取副檔名exe

開啟檔案

cfile file("c:hello.txt",cfile::moderead);///唯讀方式開啟

///cfile::moderead可改為 cfile::modewrite(只寫),cfile::modereadwrite(讀寫),cfile::modecreate(新建)

例子:移動檔案指標

file.seek(100,cfile::begin);///從檔案頭開始往下移動100位元組

file.seek(-50,cfile::end);///從檔案末尾往上移動50位元組

file.seek(-30,cfile::current);///從當前位置往上移動30位元組

file.seektobegin();///移到檔案頭

file.seektoend();///移到檔案尾

讀寫檔案

讀檔案:

char buffer[1000];

file.read(buffer,1000);

寫檔案:

cstring string("這個世界只有偏執狂才能成功");

file.write(string,8);

關閉檔案

file.close();

CFileDialog選擇多個檔案

c 同時開啟n個檔案 void copennfiledlg onbutton1 endfor 獲取檔名 不包含字尾 採用cstring的left int count 擷取cstring中從左往右數的count個字元 中的4表示 dat 四個字元 filetitle filename.left fil...

使用CFileDialog選擇多個檔案

使用cfiledialog類並設定 ofn allowmultiselect標誌時,openfilename結構體的lpstrfile成員是乙個指向使用者申請分配的緩衝區,裡面接受所 選的路徑和檔名列表,這個列表的每一項由乙個null隔開,最末以兩個null結束。nmaxfile成員指明了緩衝區的大...

CFileDialog如何選擇多個檔案

cfiledialog類設定 ofn allowmultiselect 標誌可以實現檔案多選功能,但是檔案的數量是有限制的,如果要突破這個限制,就必須自己提供緩衝區。cfiledialog dlg true,txt txt ofn allowmultiselect ofn enablesizing ...