VC中使用CFileDialog進行檔案操作

2021-05-01 22:30:33 字數 2212 閱讀 5208

一般來講你不需要派生新的類,因為基類已經提供了常用的功能,而且在建立並等待對話方塊結束後你可以通過成員函式得到使用者在對話方塊中的選擇。

cfiledialog檔案選擇對話方塊的使用:首先構造乙個物件並提供相應的引數,建構函式原型如下:

cfiledialog::cfiledialog( bool bopenfiledialog, lpctstr lpszdefext = null, lpctstr lpszfilename = null, dword dwflags = ofn_hidereadonly | ofn_overwriteprompt, lpctstr lpszfilter = null, cwnd* pparentwnd = null );引數意義如下:

bopenfiledialog 為true則顯示開啟對話方塊,為false則顯示儲存對話檔案對話方塊。

lpszdefext 指定預設的副檔名。

lpszfilename 指定預設的檔名。

dwflags 指明一些特定風格。

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

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

pparentwnd 為父視窗指標。

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

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

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

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

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

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

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

如何進行檔案操作

取得檔名

相關資訊:cfiledialog 用於取檔名的幾個成員函式:

假如選擇的檔案是c:/windows/test.exe

則:(1)getpathname();取檔名全稱,包括完整路徑。取回c:/windows/test.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();

VC中使用CButtonST使用技巧

cbuttonst是乙個功能強大的類,他可以產生各種不同風格的 button按鈕,可以在實際開發中使用,cbuttonst是控制項子繪製的原理 下面是使用方法 1 建立乙個button控制項 並為之 關聯乙個 control變數 2 修改button控制項的父類為 cbuttonst cbutton...

VC中使用CButtonST使用技巧

cbuttonst是乙個功能強大的類,他可以產生各種不同風格的 button按鈕,可以在實際開發中使用,cbuttonst是控制項子繪製的原理 下面是使用方法 1 建立乙個button控制項 並為之 關聯乙個 control變數 2 修改button控制項的父類為 cbuttonst cbutton...

在VC中使用CCheckListBox

在軟體應用中經常會遇到需要複選功能的列表框。類cchecklistbox實現了windows複選列表框。複選列表框顯示項的乙個列表,例如檔名列表。列表中的每項都有乙個核取方塊,方便使用。但是vc的控 件列表中並新增cchecklistbox,因此在使用cchecklistbox還要進行一些手動設定,...