码迷,mamicode.com
首页 > 编程语言 > 详细

VS MFC CFileDialog类 打开文件对话框和另存为对话框

时间:2014-12-30 22:03:14      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:

 1 explicit CFileDialog(
 2    BOOL bOpenFileDialog,     指定的参数创建哪种类型的对话框。 设置到构造 文件已打开 对话框的 TRUE。 设置到构造 保存文件 对话框的 FALSE。
 3    LPCTSTR lpszDefExt = NULL,    默认的文件扩展名。 如果用户在文件名框中不包括包含在用户的计算机上的关联) 的已知扩展 (一,lpszDefExt 指定的扩展自动追加到文件名。 如果此参数是 NULL,扩展不是追加。
 4    LPCTSTR lpszFileName = NULL,    显示文件名框的初始文件名。 如果 NULL,不是初始文件名显示。
 5    DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,    可以使用自定义对话框一个或多个标记的组合。 有关这些标志的说明,请参见。Windows SDK的 OPENFILENAME 结构。 如果修改 m_ofn.Flags 结构成员,请使用按位或运算符在您的更改保持默认值行为不变。
 6    LPCTSTR lpszFilter = NULL,    一系列字符串名称的筛选器可应用于文件。 如果指定的文件筛选器,因此,只有符合筛选条件将出现在文件的文件的列表。 请参见"备注"部分有关如何安装的更多信息与文件筛选器一起使用。
 7    CWnd* pParentWnd = NULL,    指针到文件对话框的父级或所有者窗口。
 8    DWORD dwSize = 0,
 9    BOOL bVistaStyle = TRUE
10 );

1.另存为对话框
 1 void CMFCApplication_testDlg::OnFileWrite()
 2 {
 3     // TODO: 在此添加命令处理程序代码
 4     //CFile::modeCreate    创建文件,若已存在,则清空内容
 5     //CFile::modeWrite    可写
 6 
 7     //szFilters is a text string that includes some file name filters:
 8     static TCHAR szFilter[] = _T("Chart Files (*.xlc)|*.xlc|")
 9    _T("Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|")
10    _T("*.xlc; *.xls|All Files (*.*)|*.*||");
11     CFileDialog fileDlg(FALSE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter);
12     fileDlg.m_ofn.lpstrTitle = _T("Linden");    //设置对话框的标题
13     //fileDlg.m_ofn.lpstrFilter = _T("Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0");    //设置文件的过滤条件
14     fileDlg.m_ofn.lpstrDefExt = _T("txt");    //设置默认扩展名
15     if(IDOK == fileDlg.DoModal()){
16         CFile file(fileDlg.GetPathName(),CFile::modeCreate | CFile::modeWrite);
17         char pBufWrite[] = "test:abcdefghijklmny";
18         file.Write(pBufWrite,strlen(pBufWrite));
19         file.Close();
20     }
21 }

2.打开文件对话框

 1     CFileDialog fileDlg(TRUE);
 2     fileDlg.m_ofn.lpstrFilter = _T("文本文件(*.txt)|*.txt|Word文件(*.doc)|*.doc|所有文件(*.*)|*.*||");        //设置过滤器 
 3     if(IDOK == fileDlg.DoModal()){
 4         CFile file(fileDlg.GetPathName(),CFile::modeRead);    //GetPathName():得到完整的文件名,包括目录名和扩展名如:c:\test\test1.txt
 5         char *pBuf;
 6         DWORD dwFileLen;
 7         dwFileLen = file.GetLength();
 8         pBuf = new char[dwFileLen + 1];
 9         pBuf[dwFileLen] = 0;
10         file.Read(pBuf,dwFileLen);
11         file.Close();
12         ::MessageBoxA( 0, pBuf, 0, MB_OK );    //VS2012默认工程字符集为UNICODE
13     }

 

 

VS MFC CFileDialog类 打开文件对话框和另存为对话框

标签:

原文地址:http://www.cnblogs.com/royaldesigner/p/4194384.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!