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 }
时间: 2024-12-22 06:04:16