VC++ CFileDialog文件选择对话框的构造和文件操作
生活随笔
收集整理的這篇文章主要介紹了
VC++ CFileDialog文件选择对话框的构造和文件操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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變量。
如何進行文件操作
取得文件名
{
CString
FilePathName;
CFileDialog dlg(TRUE);///TRUE為OPEN對話框,FALSE為SAVE AS對話框
if(dlg.DoModal()==IDOK)
FilePathName=dlg.GetPathName();
}
相關信息:CFileDialog 用于取文件名的幾個成員函數:
假如選擇的文件是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(新建)
例子:
{
CFile file;
file.Open("C:HELLO.TXT",CFile::modeCreate|Cfile::modeWrite);
...
...
}
移動文件指針
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);
關閉文件
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變量。
如何進行文件操作
取得文件名
{
CString
FilePathName;
CFileDialog dlg(TRUE);///TRUE為OPEN對話框,FALSE為SAVE AS對話框
if(dlg.DoModal()==IDOK)
FilePathName=dlg.GetPathName();
}
相關信息:CFileDialog 用于取文件名的幾個成員函數:
假如選擇的文件是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(新建)
例子:
{
CFile file;
file.Open("C:HELLO.TXT",CFile::modeCreate|Cfile::modeWrite);
...
...
}
移動文件指針
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);
關閉文件
轉載于:https://www.cnblogs.com/suiyuan2011/archive/2011/08/11/2134972.html
總結
以上是生活随笔為你收集整理的VC++ CFileDialog文件选择对话框的构造和文件操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端开发推荐-创建一个精美的jquery
- 下一篇: 细嚼慢咽C++primer(4)——类(