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 ...